From a5b5c92f2604386fcf162d5e12a42988f412db3b Mon Sep 17 00:00:00 2001 From: Vikash Loomba Date: Sun, 13 Sep 2026 21:10:39 -0700 Subject: [PATCH 1/8] spec(KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3): scope quantized WMMA admission The generic rocWMMA tile API already supplies RDNA3 operand transforms. Prove that admitting gfx1100 reuses the Q4_K and Q6_K bodies before changing arithmetic. Keep attention admission separate and compare fresh upstream snapshots requested by the developer. Tracks ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ. Staged preflight matches the pristine baseline: test_agent_onboard assumes master although global Git config selects main. Its 39 tests pass with GIT_CONFIG_GLOBAL=/dev/null. Twelve unrelated gates report explicit skips. Record and staged-diff checks pass. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: AGENT:gpt-6-astra [Codex] --- .../ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md | 19 +++ .agents/specs/rocm-rdna3-quant-wmma.md | 147 ++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 .agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md create mode 100644 .agents/specs/rocm-rdna3-quant-wmma.md diff --git a/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md b/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md new file mode 100644 index 000000000..341d266b5 --- /dev/null +++ b/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md @@ -0,0 +1,19 @@ +ID: ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ +Title: Enable the existing quantized WMMA prefill kernels on gfx1100 +Row: KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 +State: OPEN +Kind: feature +GitHub: - +Mirror: PENDING +Availability: FULL +Created: 2026-09-13 +Updated: 2026-09-13 +Closed: - + +## Problem + +Current main compiles and dispatches its generic rocWMMA Q4_K and Q6_K prefill kernels only on gfx1200/gfx1201. The installed rocWMMA 2.2.1 implements the same 16x16x16 signed-int8 operation on gfx1100. Verify admission-only reuse on physical gfx1100, preserve the attention architecture guard, and prove production reachability, numerical correctness, and same-binary prefill performance before accepting the default. The user selects RDNA3 WMMA as the next work and explicitly deprioritizes the unrelated #2773 characterization campaign. + +## Resolution + +- diff --git a/.agents/specs/rocm-rdna3-quant-wmma.md b/.agents/specs/rocm-rdna3-quant-wmma.md new file mode 100644 index 000000000..fe8a77e36 --- /dev/null +++ b/.agents/specs/rocm-rdna3-quant-wmma.md @@ -0,0 +1,147 @@ +# Reuse quantized WMMA prefill on gfx1100 + +Row: `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3`. +Parent: `KERNEL-QUANT-CIQ-GEMM-ROCM`, which retains its RDNA4 work. +Issue: `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ`. +Base: `cef9f821632eb33156bb7d24a0a85eeab7f7484a`. +Integration: one pull request, selected by the developer on 13 September 2026. +Commit this specification before implementation. + +## Now + +`SPIKE`. Source inspection supports reusing the existing Q4_K and Q6_K +kernels. Neither compilation nor execution on gfx1100 is proved yet. +The next action is a failing gfx1100 dispatch test, followed by the smallest +admission change and physical execution of those unchanged kernels. + +## Scope + +Enable the existing 16 by 16 quantized prefill tiles on gfx1100 through the +ordinary `vt::MatmulBTQuant` dispatch. Preserve Q4_K and Q6_K block decoding, +Q8_K activation quantization, output dtypes, scales, and remainder handling. +Preserve the existing `VT_ROCM_QUANT_WMMA=0` scalar control. +Keep admission bounded to gfx1100 and the already admitted gfx1200/gfx1201. +Do not enable other gfx11 devices without their own evidence. + +This is an architecture-admission change, not a new model or arithmetic port. +The user selected it independently of the broader Qwen state characterization. +Do not add graph activation, attention changes, new formats, grouped expert +tiles, kernel redesign, or a general numerical-characterization dependency. + +## Sources and hypothesis + +The parent [kernel spec](kernel-quant-ciq-gemm-rocm.md) records the existing +implementation and its oracle hierarchy. Current local source uses generic +rocWMMA fragments in `src/vt/rocm/rocm_grouped_gemm.hip::KQuantGemmKWmmaQ6K` +and `src/vt/rocm/rocm_grouped_gemm.hip::KQuantGemmKWmmaQ4K`. +Each operation loads fragments through `load_matrix_sync`, computes with +`mma_sync`, and stores a row-major tile through `store_matrix_sync`. +The scalar epilogue reads that stored tile, not the hardware register layout. + +Installed rocWMMA 2.2.1 defines the signed-int8 gfx11 specialization in +`internal/wmma_impl.hpp:602-634`. It selects +`__builtin_amdgcn_wmma_i32_16x16x16_iu8_w32` and an int32 accumulator. +Its `internal/config.hpp:222-226` requires wave32 and block dimension 16. +The existing kernel uses both. The installed compiler is HIP 7.15.26333, +Clang 23 at revision `8f497e0992fb7513f7f78a6f6b6f1056c375e961`. +Record the compiler and header hashes with actual build evidence. + +Pinned llama.cpp `b10451`, revision `10bf611e5`, confirms the distinct RDNA3 +operand layout in `ggml/src/ggml-cuda/mma.cuh::get_input_data_layout` and its +RDNA3 integer WMMA specialization. rocWMMA owns that difference here. +The source is available at the exact revision through the upstream repository. +The developer explicitly selected current upstream main/master for this +experiment on 13 September 2026, instead of the previously installed oracles. +The fetched task snapshots are vLLM +`39545e475d3627287ff69c25465dc0bd405f67e1`, llama.cpp +`093a2f86c3e37c54fa3e1f9efb17b304f3433abd`, and GGUF plugin +`d4c1f0d082fc7cd4350da56689109a01c1f29d6c`. +The plugin's current main is unchanged from the repository pin. +Build and execute isolated runtimes at these revisions before accepting their +results. Recheck the executing source chain there. This task-specific developer +direction does not claim reconciliation of unrelated repository goldens. + +## Design + +1. Add an additive quant-specific architecture policy header. Its predicate + accepts gfx1100 plus the current gfx1200/gfx1201 predicate, with valid + feature suffixes and rejection of malformed or unmeasured names. +2. Admit `__gfx1100__` at the quantized translation unit's rocWMMA include + and compile guard. Use the quant-specific predicate at its runtime gate. +3. Keep `GcnArchNameIsGfx12PrefillWmma` unchanged. Attention uses that predicate + but its gfx1100 device body is still excluded. Widening it could launch + an empty attention kernel. +4. Reuse both tile bodies. Change a body only if a concrete failing test proves + an architecture-specific correction is required. Report that finding before + expanding this design. Do not change the scalar control or output dtype. + +## Tests and gates + +G1: Add a CPU architecture-policy test before admission. It must reject +unmeasured architectures and retain the attention rejection of gfx1100. +The existing Q4_K/Q6_K physical tests must run on gfx1100 independently of +the new production predicate. Before admission, dispatch assertions must fail. +Preserve their existing fixtures and tolerances, F32/BF16 outputs, aligned +shapes, joint tails, and asymmetric bottom/right tails. Include a partial +four-wave block because the kernels contain block-wide barriers. + +G2: Build the actual HIP translation unit for gfx1100 and inspect emitted +ISA for signed-int8 WMMA. Execute registered-operation tests on the local +7900 XTX under the configured GPU mutex. Kernel output, not just a host +dispatch counter, must be checked. Re-run scalar-control outputs in separate +processes because the environment selection is cached. + +Port the applicable plugin `tests/test_kernels.py::test_mmq` coverage with its +original Q4_K/Q6_K sample tensors, token counts 7/83/128/2048, hidden widths +256/1024, seed zero, and F16/BF16/F32 inputs. Preserve the upstream tolerances. +Native outputs support F32/BF16 only; explicitly narrow a native F32 result +for the upstream F16-output comparison and document that harness adaptation. +Reuse the sample verification/export helpers under `tools/rocm_quant_gather` +where useful. Synthetic local correctness tests remain tighter independent +guards; they do not replace the upstream fixture comparison. + +G3: Prove production reachability through the public load/completion path on +a Q4_K/Q6_K fixture or the recorded Qwen3.5-4B Q4_K_M checkpoint. Use prompt +lengths that enter prefill tiles, including a nonmultiple of 16. Record completed +tokens and both format dispatch counters or matching profiler kernel traces. +Deleting each launch or restoring gfx12-only admission must fail this gate. + +G4: After correctness, compare the same binary with the environment unset and +with `VT_ROCM_QUANT_WMMA=0`. Use identical weights, prompts, token counts, +batching, and sampling. Record prefill, decode, latency, and memory on an idle +host with interleaved repeats. Run the applicable pinned primary workload and +the quant-matched llama.cpp floor before accepting a performance conclusion. +The retained checkpoint is `Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf`, SHA256 +`00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4`, from +`unsloth/Qwen3.5-4B-GGUF@e87f176479d0855a907a41277aca2f8ee7a09523`. +Verify its hash before use. A missing oracle resource stays explicitly pending. + +G5: Run the full declared local gate: the HIP `rocm|cross_device` CTest set, +the production reachability case, CPU architecture tests, and the full +`scripts/agent-preflight.sh --staged`. Qualify skips and pair baseline failures. +A fresh reviewer inspects the immutable head, mutates admission and both launch +sites in a scratch worktree, and restores source hashes after each mutation. +The operator independently reruns the focused hardware and production gates. + +## Risks and stop conditions + +The rocWMMA implementation can compile but use a wrong fragment layout. +Output comparisons and ISA inspection distinguish that failure from admission. +Partial blocks can expose barrier assumptions. Tail tests must complete. +An instruction-path win need not improve full-model prefill. Measure both. +Retain the existing behavior on every excluded device and on decode. +If a new kernel algorithm is required, report `NEEDS_DECISION` with evidence. +Do not silently broaden the row or claim an unrun gate passed. + +## Owed + +This row owns its implementation and verification gates. No correctness or +performance claim exists until its corresponding receipts are recorded. +Other formats, grouped expert tiles, and other RDNA3 devices keep their prior +owners. The parent RDNA4 row and its open cooperative-tile work remain separate. + +## Row inventory + +| ID | Upstream source | Local anchor | Tests and evidence | Spec | State | Owner | Issue | +|---|---|---|---|---|---|---|---| +| `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3` | Pinned llama.cpp RDNA3 integer WMMA; rocWMMA 2.2.1 gfx11 fragments | `KQuantGemmKWmmaQ4K`, `KQuantGemmKWmmaQ6K` | G1-G5 pending | [This spec](rocm-rdna3-quant-wmma.md) | `SPIKE` | RDNA3 helper; coordinating operator | `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ` | From c3fe98ba6c55ce71e75746e1b944a27640464e0f Mon Sep 17 00:00:00 2001 From: Vikash Loomba Date: Sun, 13 Sep 2026 21:26:11 -0700 Subject: [PATCH 2/8] feat(KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3): admit gfx1100 quantized WMMA prefill Reuse the existing Q4_K and Q6_K rocWMMA tiles on gfx1100. The fragment API already resolves its operand layout. Keep attention admission separate. Hardware red-first tests fail ten dispatch assertions before admission. The unchanged kernels pass all four focused cases and 46 assertions after admission. The scalar control passes the same cases in a separate process. The public completion gate reaches both formats and matches all 1024 logits and eight generated tokens against its scalar child process. Port all 240 original plugin test_mmq Q4_K/Q6_K tensor cases, preserving inputs and tolerances. Native outputs pass against both the plugin and its dense reference. F16 output narrows from native F32 in the test adapter. The gfx1100 code object contains signed-int8 WMMA instructions. This is an immutable local implementation checkpoint. The staged preflight is running. Broad HIP gates, mutation review, and full-model performance remain pending. No performance claim or remote handoff is authorized by this checkpoint. Tracks ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:GPT-6 [Codex] --- docs/FEATURES.md | 2 +- include/vt/rocm/rocm_quant_wmma_arch.h | 31 +++++ src/vt/rocm/rocm_grouped_gemm.hip | 40 ++---- tests/CMakeLists.txt | 4 + tests/capi/rocm_quant_gather_fixture.h | 19 ++- tests/capi/test_rocm_quant_wmma.cpp | 182 +++++++++++++++++++++++++ tests/vt/test_backend_cross_device.cpp | 47 ++++--- tests/vt/test_rocm_arch.cpp | 22 +++ tools/rocm_quant_wmma/capture.cpp | 133 ++++++++++++++++++ tools/rocm_quant_wmma/primary.py | 151 ++++++++++++++++++++ 10 files changed, 582 insertions(+), 49 deletions(-) create mode 100644 include/vt/rocm/rocm_quant_wmma_arch.h create mode 100644 tests/capi/test_rocm_quant_wmma.cpp create mode 100644 tools/rocm_quant_wmma/capture.cpp create mode 100644 tools/rocm_quant_wmma/primary.py diff --git a/docs/FEATURES.md b/docs/FEATURES.md index 18cade43a..dbbc67a4b 100644 --- a/docs/FEATURES.md +++ b/docs/FEATURES.md @@ -347,7 +347,7 @@ expand at load instead of reaching a device provider that cannot execute them. | CPU (x86, Arm i8mm; A76 assembly correct/default, llama speed gate open, and the closed 20-core floor ran a SUPERSEDED fork denominator rather than the stock `b10451` pin, re-take owed #1003) | ✅ `CPU_ATTN` registered (#1371/#1392, [spec](../.agents/specs/attn-validate-configuration.md)) | ◐ | ☐ | ✅ | | Metal (Apple Silicon) | ✅ builds under Apple Clang with project warnings promoted to errors, the Qwen3.5 MoE loader included; its layout-refusal path uses the same messages and behavior on every platform (#1054) | ☐ | ☐ | ✅ | | Vulkan | ◐ **EXL3 is now NATIVE** ([#2530](https://github.com/mudler/vllm.cpp/issues/2530), [spec](../.agents/specs/backend-vulkan-exl3.md)): `kCastF16` and `kExl3Gemm` were the only two ops an EXL3 checkpoint ran on the CPU reference tier on a Vulkan queue, MEASURED at two fallback notices and now at ZERO. `kExl3Gemm` is TRANSCRIBED from the portable CPU reference, not ported from the CUDA kernel, whose 90 KiB shared-memory budget alone exceeds Vulkan's 16 KiB guarantee before one reaches `mma.sync`, `ldmatrix`, `cp.async` or a grid-wide barrier Vulkan has at no version -- so the gate is BYTE equality with the CPU arm on all three codebooks and every width, not a tolerance. Verified on llvmpipe with NO GPU and NO lease, which is what makes it a CI gate rather than a lease gate; no real Vulkan GPU and no checkpoint run, and NO speed number is claimed on any axis. `kExl3MoeMlp` and `kExl3HadR128` are owed | ☐ | ☐ | ✅ | -| ROCm | W0: 5 gfx archs; dense/GDN all-native; 0.8B dispatch fixed. **M4:** Qwen3-0.6B/3.5-0.8B 16/16 (#41). **M3:** `ROCM_ATTN` registered (#1056/#1065, [spec](../.agents/specs/rocm-attn-backend.md)). **EXL3 is now NATIVE on `gfx1151`** ([#2433](https://github.com/mudler/vllm.cpp/issues/2433), [spec](../.agents/specs/backend-rocm-exl3.md)): `kCastF16` and `kExl3Gemm` were the only two ops an EXL3 checkpoint still ran on the CPU reference tier, and a 3.0bpw Llama-3.2-1B now completes with ZERO reference-tier hits at 8.27 tok/s warm against 0.83 for the same tree with the two registrations disabled -- byte-identical greedy output either way. `kExl3Gemm` is TRANSCRIBED from the portable CPU reference, not ported from the CUDA kernel, whose 90 KiB shared-memory budget alone does not fit AMD's 64 KiB LDS; the gate is therefore byte equality with the CPU arm rather than a tolerance. No BF16 denominator and no clock attribution: the control HUNG the GPU in the same lease ([#2511](https://github.com/mudler/vllm.cpp/issues/2511)). `kExl3MoeMlp` is owed. CPU parity open (#269). Native grouped BF16 expert kernels pass component gates on gfx1100; full Qwen3 MoE token parity remains open ([spec](../.agents/specs/rocm-bf16-moe.md)) | Native ([ROCm guide](ROCM.md), device-specific wrapped-call-safe derived recount): full GDN, MoE combine/gate, keep-quant GEMM, EXL3 trellis GEMM; ctest-green gfx1151/1103/1100/1201/1200 (#41). **APU managed allocation is now MEASURED and NARROWED** ([#2511](https://github.com/mudler/vllm.cpp/issues/2511)): `hipMallocManaged` on a part reporting `PageableMemoryAccess = 0` faulted the GPU in 17 of 21 legs on `gfx1151`, against 0 of 21 for plain `hipMalloc`, and the plain arm is the first thing that has completed a gate-sized Qwen3.8-27B Q4_K run on that board. The managed branch now requires a device that can take a recoverable page fault, and `UnifiedMemory()` follows the allocator -- so gfx1151 and gfx1103 lose the CPU reference tier and an op with no native ROCm kernel refuses by name there, naming the attribute and `VT_ROCM_MANAGED_ALLOC=1`. | ✅ | ✅ | +| ROCm | W0: 5 gfx archs; dense/GDN all-native; 0.8B dispatch fixed. **M4:** Qwen3-0.6B/3.5-0.8B 16/16 (#41). **M3:** `ROCM_ATTN` registered (#1056/#1065, [spec](../.agents/specs/rocm-attn-backend.md)). **EXL3 is now NATIVE on `gfx1151`** ([#2433](https://github.com/mudler/vllm.cpp/issues/2433), [spec](../.agents/specs/backend-rocm-exl3.md)): `kCastF16` and `kExl3Gemm` were the only two ops an EXL3 checkpoint still ran on the CPU reference tier, and a 3.0bpw Llama-3.2-1B now completes with ZERO reference-tier hits at 8.27 tok/s warm against 0.83 for the same tree with the two registrations disabled -- byte-identical greedy output either way. `kExl3Gemm` is TRANSCRIBED from the portable CPU reference, not ported from the CUDA kernel, whose 90 KiB shared-memory budget alone does not fit AMD's 64 KiB LDS; the gate is therefore byte equality with the CPU arm rather than a tolerance. No BF16 denominator and no clock attribution: the control HUNG the GPU in the same lease ([#2511](https://github.com/mudler/vllm.cpp/issues/2511)). `kExl3MoeMlp` is owed. CPU parity open (#269). Native grouped BF16 expert kernels pass component gates on gfx1100; full Qwen3 MoE token parity remains open ([spec](../.agents/specs/rocm-bf16-moe.md)). Q4_K and Q6_K prefill uses rocWMMA on gfx1100 and retains gfx1200/gfx1201 admission. The gfx1100 public gate matches its scalar control. Full-model performance remains pending ([spec](../.agents/specs/rocm-rdna3-quant-wmma.md)) | Native ([ROCm guide](ROCM.md), device-specific wrapped-call-safe derived recount): full GDN, MoE combine/gate, keep-quant GEMM, EXL3 trellis GEMM; ctest-green gfx1151/1103/1100/1201/1200 (#41). **APU managed allocation is now MEASURED and NARROWED** ([#2511](https://github.com/mudler/vllm.cpp/issues/2511)): `hipMallocManaged` on a part reporting `PageableMemoryAccess = 0` faulted the GPU in 17 of 21 legs on `gfx1151`, against 0 of 21 for plain `hipMalloc`, and the plain arm is the first thing that has completed a gate-sized Qwen3.8-27B Q4_K run on that board. The managed branch now requires a device that can take a recoverable page fault, and `UnifiedMemory()` follows the allocator -- so gfx1151 and gfx1103 lose the CPU reference tier and an op with no native ROCm kernel refuses by name there, naming the attribute and `VT_ROCM_MANAGED_ALLOC=1`. | ✅ | ✅ | | XPU / TPU | ☐ | ✅ | ◐ | ☐ | | Tenstorrent Blackhole | ◐ `ACTIVE`, OPT-125m 6/6; Qwen3-0.6B wired; Mistral-7B-v0.3 16/16 on P150 ([spec](../.agents/specs/tenstorrent-mistral.md)). 16x16 rerun and residual-RMS owed ([spec](../.agents/specs/tenstorrent-backend.md)) | ✅ | ☐ | ☐ | | Tenstorrent host-free decode | ◐ DEFAULT since #1604 (`0` opts out): no per-step host readback; 2.1x default-leg tok/s; both golden pairs re-adjudicated, both paged gates 16/16. Capture DEFAULT for Qwen3-dense since the #1625 flip (`0` opts out) — 27.7 vs 12.9 tok/s at c=1, 2.15x over the opt-out, [details](benchmarks/tt-capture-default-decode.md); Qwen3.5 dense (GDN) joined the default since [#2907](https://github.com/mudler/vllm.cpp/issues/2907), the decode-side GDN ops running device-resident under capture with [#2812](https://github.com/mudler/vllm.cpp/issues/2812)'s captured fatal fixed; 4B near-tie pair owed ([#2811](https://github.com/mudler/vllm.cpp/issues/2811)); async off (#1627) | ☐ | ☐ | ☐ | diff --git a/include/vt/rocm/rocm_quant_wmma_arch.h b/include/vt/rocm/rocm_quant_wmma_arch.h new file mode 100644 index 000000000..d55d84974 --- /dev/null +++ b/include/vt/rocm/rocm_quant_wmma_arch.h @@ -0,0 +1,31 @@ +// Quantized prefill admission stays separate from the attention policy. +#pragma once + +#include + +namespace vt::rocm { + +// rocWMMA owns the different gfx11/gfx12 operand layouts. Admit only the +// measured gfx1100 device and existing gfx1200/gfx1201 devices. Attention +// keeps its gfx12 policy because its gfx11 device body is still excluded. +constexpr bool GcnArchNameHasQuantWmma(std::string_view gcn_arch) { + const auto colon = gcn_arch.find(':'); + const auto stem = gcn_arch.substr(0, colon); + // Require an exact stem followed by HIP target features with explicit signs. + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") return false; + if (colon == std::string_view::npos) return true; + auto features = gcn_arch.substr(colon + 1); + bool xnack = false, sramecc = false; + while (!features.empty()) { + const auto next = features.find(':'); + const auto feature = features.substr(0, next); + if ((feature == "xnack+" || feature == "xnack-") && !xnack) xnack = true; + else if ((feature == "sramecc+" || feature == "sramecc-") && !sramecc) sramecc = true; + else return false; + if (next == std::string_view::npos) return true; + features.remove_prefix(next + 1); + } + return false; +} + +} // namespace vt::rocm diff --git a/src/vt/rocm/rocm_grouped_gemm.hip b/src/vt/rocm/rocm_grouped_gemm.hip index f1573a214..208626efe 100644 --- a/src/vt/rocm/rocm_grouped_gemm.hip +++ b/src/vt/rocm/rocm_grouped_gemm.hip @@ -15,11 +15,9 @@ #include #include #include -// rocWMMA int8 tile arm (KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA4, issue #2109), -// gfx1200/gfx1201 (RDNA4) only — same gate rocm_paged_attn.hip already uses -// for its own WMMA arm, and the same reason: a fat build also emits other -// gfx12 targets (for example gfx1036) that must not see this include. -#if defined(__gfx1200__) || defined(__gfx1201__) +// The quantized fragment API supports measured gfx1100 and gfx1200/gfx1201. +// Keep this device guard independent of the attention WMMA architecture gate. +#if defined(__gfx1100__) || defined(__gfx1200__) || defined(__gfx1201__) #include #define VT_ROCM_QUANT_WMMA_OK 1 #endif @@ -38,12 +36,12 @@ #include "vt/grow_only_stream_scratch.h" #include "vt/ops.h" #include "vt/rocm/rocm_act_quant.h" -#include "vt/rocm/rocm_arch.h" #include "vt/rocm/rocm_device_bind.h" #include "vt/rocm/rocm_f16_codec.h" #include "vt/rocm/rocm_mmvq_policy.h" #include "vt/rocm/rocm_norm_quant_bridge.h" #include "vt/rocm/rocm_quant_iq_tables.h" +#include "vt/rocm/rocm_quant_wmma_arch.h" #include "vt/rocm/rocm_runtime.h" // Block layouts — the single source of truth (ggml-common.h mirrors). @@ -461,12 +459,8 @@ __global__ void KQuantGemmKWmmaQ6K(OutT* __restrict__ out, const uint8_t* __rest const BlockQ8_K* __restrict__ act, int64_t m, int64_t n, int64_t nsb, int64_t n_tiles) { #if !defined(VT_ROCM_QUANT_WMMA_OK) - // Compiled for a target other than gfx1200/gfx1201, or for the host pass: - // never launched there (`Gfx12QuantWmmaHostOk` gates every launch site - // below on the actual device's runtime gcnArchName, not on this macro — - // the macro is only visible to a device compilation pass for gfx1200/ - // gfx1201 itself, exactly the trap issue #785 already found and fixed for - // `rocm_paged_attn.hip`'s own WMMA arm). + // Non-admitted device and host passes retain a stub. QuantWmmaHostOk + // checks the actual device architecture before any launch of this body. (void)out; (void)weight; (void)act; (void)m; (void)n; (void)nsb; (void)n_tiles; return; #else @@ -761,17 +755,9 @@ __global__ void KQuantGemmKWmmaQ4K(OutT* __restrict__ out, const uint8_t* __rest #endif // VT_ROCM_QUANT_WMMA_OK } -// Per-device, once: launch the Q6_K WMMA tile only when this device's -// gcnArchName is gfx1200/gfx1201 (prefix match). NEVER gated by -// VT_ROCM_QUANT_WMMA_OK at a host call site — that macro is defined only on -// the device compilation pass for gfx1200/gfx1201 itself, so a host-side -// `#if` on it always compiles away the launch (issue #785's exact trap, -// documented in `.agents/specs/rocm-sharedk-wmma-host-dispatch.md`). Reuses -// the same HIP-free, unit-tested prefix check `rocm_paged_attn.hip`'s own -// WMMA dispatch already established (`vt::rocm::GcnArchNameIsGfx12PrefillWmma`, -// `include/vt/rocm/rocm_arch.h`); the name is attention-flavored but the test -// it names is pure architecture matching, shared rather than duplicated here. -bool Gfx12QuantWmmaHostOk(int device_index) { +// Cache each device's quant-specific runtime admission. The compile guard is +// device-only, so testing it on the host would compile away every launch. +bool QuantWmmaHostOk(int device_index) { struct Slot { std::once_flag once; bool ok = false; @@ -785,7 +771,7 @@ bool Gfx12QuantWmmaHostOk(int device_index) { return; } slots[static_cast(device_index)].ok = - vt::rocm::GcnArchNameIsGfx12PrefillWmma(prop.gcnArchName); + vt::rocm::GcnArchNameHasQuantWmma(prop.gcnArchName); }); return slots[static_cast(device_index)].ok; } @@ -1441,7 +1427,7 @@ std::atomic g_kq_wmma_dispatches{0}; // site is reached independently, not infer Q4_K's from Q6_K's. std::atomic g_kq_wmma_q4k_dispatches{0}; -// VT_ROCM_QUANT_WMMA=0 forces the scalar arm even on gfx1200/gfx1201 — the +// VT_ROCM_QUANT_WMMA=0 forces the scalar arm even on admitted WMMA devices — the // A/B escape hatch every WMMA arm in this tree ships with // (VT_ATTN_PREFILL_SHAREDK_WMMA is the paged-attention precedent). Default // on: the gate below still requires the runtime architecture match and @@ -1803,7 +1789,7 @@ void MatmulBTQuantKernelRocmGdn(Queue& q, Tensor& out, const Tensor& a, const Te g_mmvq_route_baseline.fetch_add(1, std::memory_order_relaxed); const int64_t grid = (m * n + kWarpsPerBlock - 1) / kWarpsPerBlock; - // RDNA4 WMMA tile arm: Q6_K and Q4_K prefill only (m > 1, since + // Quantized WMMA tile arm: Q6_K and Q4_K prefill only (m > 1, since // KQuantDecodeCoopWarps above already owns m == 1). Q5_K is `## Owed` — // same 32-wide scale/min shape as Q4_K plus a high-bit plane, not yet // ported. Every other format and every other architecture falls through @@ -1829,7 +1815,7 @@ void MatmulBTQuantKernelRocmGdn(Queue& q, Tensor& out, const Tensor& a, const Te // much as the whole GEMM to fill a typically thin remainder strip, for // a large aligned corner and wide N. const bool wmma_ok = (fmt == 2 || fmt == 0) && m >= 16 && n >= 16 && - QuantWmmaEnabled() && Gfx12QuantWmmaHostOk(q.device.index); + QuantWmmaEnabled() && QuantWmmaHostOk(q.device.index); auto launch = [&](auto ot) { using OutT = decltype(ot); auto* o = static_cast(out.data); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 35ee143bd..b98062b85 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -2976,6 +2976,8 @@ vllm_cpp_add_test(test_cuda_embedding_quant vt/test_cuda_embedding_quant.cpp) target_include_directories(test_cuda_embedding_quant PRIVATE ${CMAKE_SOURCE_DIR}/src) # BACKEND-ROCM-QUANT-GATHER: the production gate starts at the public loader. vllm_cpp_add_test(test_capi_rocm_embedding_quant capi/test_rocm_embedding_quant.cpp) +# Quantized WMMA reaches both formats through the public completion API. +vllm_cpp_add_test(test_capi_rocm_quant_wmma capi/test_rocm_quant_wmma.cpp) vllm_cpp_add_test(test_rocm_embedding_quant vt/test_rocm_embedding_quant.cpp) target_include_directories(test_rocm_embedding_quant PRIVATE ${CMAKE_SOURCE_DIR}/src) if(VLLM_CPP_HIP) @@ -2987,6 +2989,8 @@ endif() add_executable(rocm_quant_gather_capture ../tools/rocm_quant_gather/capture.cpp) target_link_libraries(rocm_quant_gather_capture PRIVATE vllm) target_include_directories(rocm_quant_gather_capture PRIVATE ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests) +add_executable(rocm_quant_wmma_capture ../tools/rocm_quant_wmma/capture.cpp) +target_link_libraries(rocm_quant_wmma_capture PRIVATE vllm) # CPU-ELEM-GEMM: the specialized + SIMD elementwise (bf16/f16/f32) GEMM. The # gate is BYTE-IDENTITY against an independent scalar reference across every # dtype combination, both weight orientations, ragged K/N, row-strided diff --git a/tests/capi/rocm_quant_gather_fixture.h b/tests/capi/rocm_quant_gather_fixture.h index defabe86a..f908fe3d5 100644 --- a/tests/capi/rocm_quant_gather_fixture.h +++ b/tests/capi/rocm_quant_gather_fixture.h @@ -119,7 +119,9 @@ inline std::string DenseEmbedding(const Format& format, return dense; } -inline std::string BuildModel(const Format& format, bool dense_embedding) { +inline std::string BuildModel(const Format& format, bool dense_embedding, + const Format* gate_up_format = nullptr, + const Format* down_format = nullptr) { using namespace gguf_test; GgufModelBuilder builder; builder.AddKv(StrKv("general.architecture", "qwen35")); @@ -166,7 +168,14 @@ inline std::string BuildModel(const Format& format, bool dense_embedding) { dense_embedding ? 30 : format.ggml, dense_embedding ? DenseEmbedding(format, packed) : packed); std::mt19937 rng(kSeed); - const auto projection = [&](const char* name, uint64_t input, uint64_t output) { + const auto projection = [&](const char* name, uint64_t input, uint64_t output, + const Format* quant = nullptr) { + if (quant != nullptr) { + builder.AddTensor(name, {input, output}, quant->ggml, + PackedTable(*quant, static_cast(output), + static_cast(input))); + return; + } std::string bytes; bytes.reserve(static_cast(input * output * 2)); for (uint64_t i = 0; i < input * output; ++i) { @@ -188,9 +197,9 @@ inline std::string BuildModel(const Format& format, bool dense_embedding) { projection("blk.0.attn_k.weight", 256, 64); projection("blk.0.attn_v.weight", 256, 64); projection("blk.0.attn_output.weight", 256, 256); - projection("blk.0.ffn_gate.weight", 256, 256); - projection("blk.0.ffn_up.weight", 256, 256); - projection("blk.0.ffn_down.weight", 256, 256); + projection("blk.0.ffn_gate.weight", 256, 256, gate_up_format); + projection("blk.0.ffn_up.weight", 256, 256, gate_up_format); + projection("blk.0.ffn_down.weight", 256, 256, down_format); norm("output_norm.weight", 256); norm("blk.0.attn_norm.weight", 256); norm("blk.0.post_attention_norm.weight", 256); diff --git a/tests/capi/test_rocm_quant_wmma.cpp b/tests/capi/test_rocm_quant_wmma.cpp new file mode 100644 index 000000000..d9eae519a --- /dev/null +++ b/tests/capi/test_rocm_quant_wmma.cpp @@ -0,0 +1,182 @@ +// KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3: public Q4_K/Q6_K prefill reachability. +// A separate scalar process supplies complete logits for the identical GGUF. +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "capi/rocm_quant_gather_fixture.h" +#include "vllm.h" +#include "vt/backend.h" +#include "vt/ops.h" + +#if defined(VLLM_CPP_HIP) && !defined(VLLM_CPP_CUDA) && defined(__unix__) +#include +#include +extern char** environ; + +namespace vt::rocm { +std::string DeviceArchName(int); +uint64_t KQuantWmmaDispatchCount(); +uint64_t KQuantWmmaQ4KDispatchCount(); +} // namespace vt::rocm + +namespace { +using Json = nlohmann::json; +struct Completion { + std::vector logits; + int callbacks = 0; + bool invalid = false; +}; + +void Require(bool value, const std::string& message) { + if (!value) throw std::runtime_error(message); +} + +void Capture(const int32_t*, int32_t, float* logits, int32_t vocab, void* data) { + auto& capture = *static_cast(data); + if (vocab != 128 || capture.callbacks >= 4) { + capture.invalid = true; + return; + } + for (int i = 0; i < vocab; ++i) { + if (!std::isfinite(logits[i])) capture.invalid = true; + capture.logits.push_back(logits[i]); + } + ++capture.callbacks; +} + +Json Run(bool expect_wmma) { + const rocm_gather_test::Format q4{vt::DType::kQ4_K, 12, "Q4_K"}; + const rocm_gather_test::Format q6{vt::DType::kQ6_K, 14, "Q6_K"}; + gguf_test::TempFile model_file(rocm_gather_test::BuildModel(q4, true, &q4, &q6)); + Json result = Json::array(); + for (const int tokens : {16, 37}) { + auto params = vllm_model_params_default(); + params.model_path = model_file.path().c_str(); + params.device = 0; + params.block_size = 16; + params.num_blocks = 16; + params.max_model_len = 64; + params.max_num_seqs = 1; + vllm_engine* raw = nullptr; + Require(vllm_engine_load(¶ms, &raw) == VLLM_OK, + "public load: " + std::string(vllm_last_error())); + std::unique_ptr engine(raw, vllm_engine_free); + std::vector prompt(static_cast(tokens)); + for (int i = 0; i < tokens; ++i) prompt[static_cast(i)] = (i * 19 + 1) % 128; + Completion capture; + capture.logits.reserve(4 * 128); + std::vector ids(4); + auto sampling = vllm_sampling_params_default(); + sampling.temperature = 0.0F; + sampling.max_tokens = 4; + sampling.ignore_eos = 1; + sampling.has_seed = 1; + sampling.seed = rocm_gather_test::kSeed; + sampling.logits_processor = Capture; + sampling.logits_processor_user_data = &capture; + int32_t count = 0; + const auto q4_before = vt::rocm::KQuantWmmaQ4KDispatchCount(); + const auto q6_before = vt::rocm::KQuantWmmaDispatchCount(); + const auto reference_before = vt::GetReferenceTierHits(); + Require(vllm_complete_tokens(engine.get(), prompt.data(), tokens, &sampling, + ids.data(), 4, &count, nullptr) == VLLM_OK, + "public completion: " + std::string(vllm_last_error())); + const auto q4_calls = vt::rocm::KQuantWmmaQ4KDispatchCount() - q4_before; + const auto q6_calls = vt::rocm::KQuantWmmaDispatchCount() - q6_before; + Require(count == 4 && capture.callbacks == 4 && !capture.invalid, + "completion must return four tokens and finite full logits"); + Require(vt::GetReferenceTierHits() == reference_before, "unexpected CPU reference fallback"); + Require((q4_calls > 0) == expect_wmma, "Q4_K public WMMA dispatch mismatch"); + Require((q6_calls > 0) == expect_wmma, "Q6_K public WMMA dispatch mismatch"); + std::printf("PUBLIC prompt=%d q4_wmma=%llu q6_wmma=%llu tokens=", tokens, + static_cast(q4_calls), + static_cast(q6_calls)); + for (const auto id : ids) std::printf(" %d", id); + std::puts(""); + result.push_back({{"prompt_tokens", tokens}, {"ids", ids}, {"logits", capture.logits}}); + } + return result; +} + +void ScalarProcess(const char* executable, const std::string& output) { + // posix_spawn executes a fresh process because QuantWmmaEnabled caches the + // environment on first use. The parent's GPU mutex also covers this child. + std::vector variables; + for (char** entry = environ; *entry != nullptr; ++entry) { + const std::string value(*entry); + if (value.rfind("VT_ROCM_QUANT_WMMA=", 0) != 0) variables.push_back(value); + } + variables.emplace_back("VT_ROCM_QUANT_WMMA=0"); + std::vector environment; + for (auto& value : variables) environment.push_back(value.data()); + environment.push_back(nullptr); + char* args[] = {const_cast(executable), const_cast("--scalar"), + const_cast(output.c_str()), nullptr}; + pid_t child = 0; + Require(posix_spawnp(&child, executable, nullptr, nullptr, args, environment.data()) == 0, + "cannot start scalar control"); + int status = 0; + Require(waitpid(child, &status, 0) == child && WIFEXITED(status) && WEXITSTATUS(status) == 0, + "scalar control failed"); +} +} // namespace +#endif + +int main(int argc, char** argv) { +#if defined(VLLM_CPP_HIP) && !defined(VLLM_CPP_CUDA) && defined(__unix__) + try { + const std::string arch = vt::rocm::DeviceArchName(0); + const auto stem = arch.substr(0, arch.find(':')); + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") { + std::printf("SKIPPED: physical gfx1100 or gfx1200/gfx1201 required, got %s\n", arch.c_str()); + return 77; + } + if (argc == 3 && std::string(argv[1]) == "--scalar") { + const auto report = Run(false); + std::ofstream file(argv[2]); + file << report.dump(2) << '\n'; + Require(static_cast(file), "cannot write scalar result"); + return 0; + } + Require(argc == 1, "use no arguments or --scalar OUTPUT"); + const char* knob = std::getenv("VT_ROCM_QUANT_WMMA"); + Require(knob == nullptr || std::string(knob) != "0", "run the public gate with WMMA enabled"); + gguf_test::TempFile scalar_file(""); + ScalarProcess(argv[0], scalar_file.path()); + std::ifstream stream(scalar_file.path()); + const auto expected = Json::parse(stream); + const auto actual = Run(true); + Require(actual.size() == expected.size(), "scalar prompt count differs"); + float max_error = 0; + for (size_t p = 0; p < actual.size(); ++p) { + Require(actual[p]["ids"] == expected[p]["ids"], "scalar completion tokens differ"); + const auto got = actual[p]["logits"].get>(); + const auto ref = expected[p]["logits"].get>(); + Require(got.size() == ref.size(), "scalar logits shape differs"); + for (size_t i = 0; i < got.size(); ++i) { + const float error = std::abs(got[i] - ref[i]); + max_error = std::max(max_error, error); + Require(error <= 0.02F + 0.01F * std::abs(ref[i]), "public logits differ from scalar control"); + } + } + std::printf("PUBLIC WMMA PASS: 1024 logits, token-exact, max_abs_error=%g\n", max_error); + return 0; + } catch (const std::exception& error) { + std::fprintf(stderr, "PUBLIC WMMA FAILED: %s\n", error.what()); + return 1; + } +#else + (void)argc; + (void)argv; + std::puts("SKIPPED: the public AUTO selection gate requires a HIP-only Unix build"); + return 77; +#endif +} diff --git a/tests/vt/test_backend_cross_device.cpp b/tests/vt/test_backend_cross_device.cpp index 033c87091..1ea50e7a6 100644 --- a/tests/vt/test_backend_cross_device.cpp +++ b/tests/vt/test_backend_cross_device.cpp @@ -3675,13 +3675,16 @@ TEST_CASE("ROCm Q6_K decode spreads one row's superblocks over several warps") { } } -// KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA4 (issue #2109), W1: the RDNA4 WMMA int8 -// tile arm of the Q6_K prefill GEMM. Runs ONLY on gfx1200/gfx1201 — every -// other ROCm target keeps the scalar arm the case above already covers, so -// this returns early rather than skip-reporting on hardware it does not -// target (`GcnArchNameIsGfx12PrefillWmma` is the same host gate the kernel's -// own dispatch decision uses, per `include/vt/rocm/rocm_arch.h`). -TEST_CASE("keep-quant Q6_K WMMA tile arm matches the CPU oracle on RDNA4") { +// Q4_K/Q6_K WMMA runs on physical gfx1100, gfx1200, and gfx1201. +// Preserve the original RDNA4 fixtures, including six tiles in a four-wave +// block and both output dtypes. Scalar controls run in a separate process. +namespace { +bool ExpectQuantWmma() { + const char* value = std::getenv("VT_ROCM_QUANT_WMMA"); + return value == nullptr || std::strcmp(value, "0") != 0; +} +} // namespace +TEST_CASE("keep-quant Q6_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4") { const bool rocm_registered = [] { for (DeviceType dt : RegisteredDevices()) if (dt == DeviceType::kROCM) return true; @@ -3691,7 +3694,10 @@ TEST_CASE("keep-quant Q6_K WMMA tile arm matches the CPU oracle on RDNA4") { REQUIRE(OpAvailable(vt::OpId::kMatmulBTQuant, DeviceType::kROCM)); const std::string actual_arch = vt::rocm::DeviceArchName(0); - if (!vt::rocm::GcnArchNameIsGfx12PrefillWmma(actual_arch)) return; + // Test admission is independent of the production policy: narrowing that + // policy must fail dispatch assertions instead of skipping this case. + const auto stem = actual_arch.substr(0, actual_arch.find(':')); + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") return; // Tile-aligned M and N (both multiples of 16, and not equal, so the grid // exercises a non-square m_tiles x n_tiles), K spanning more than one @@ -3767,7 +3773,7 @@ TEST_CASE("keep-quant Q6_K WMMA tile arm matches the CPU oracle on RDNA4") { // site's call in a scratch copy leaves this counter flat and reds this // case, which the NMSE checks above cannot do on their own — the scalar // fallback would still pass them. - CHECK(wmma_after > wmma_before); + CHECK((wmma_after > wmma_before) == ExpectQuantWmma()); } rocm.DestroyQueue(q); } @@ -3777,7 +3783,7 @@ TEST_CASE("keep-quant Q6_K WMMA tile arm matches the CPU oracle on RDNA4") { // carries a second per-sub-block correction (`dmin * sumi`) Q6_K has no // equivalent of, so this is not just the Q6_K case with a different dtype — // it exercises a materially different code path in `KQuantGemmKWmmaQ4K`. -TEST_CASE("keep-quant Q4_K WMMA tile arm matches the CPU oracle on RDNA4") { +TEST_CASE("keep-quant Q4_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4") { const bool rocm_registered = [] { for (DeviceType dt : RegisteredDevices()) if (dt == DeviceType::kROCM) return true; @@ -3787,7 +3793,10 @@ TEST_CASE("keep-quant Q4_K WMMA tile arm matches the CPU oracle on RDNA4") { REQUIRE(OpAvailable(vt::OpId::kMatmulBTQuant, DeviceType::kROCM)); const std::string actual_arch = vt::rocm::DeviceArchName(0); - if (!vt::rocm::GcnArchNameIsGfx12PrefillWmma(actual_arch)) return; + // Test admission is independent of the production policy: narrowing that + // policy must fail dispatch assertions instead of skipping this case. + const auto stem = actual_arch.substr(0, actual_arch.find(':')); + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") return; constexpr int64_t M = 32, N = 48, K = 512; constexpr int64_t kBlockBytes = 144; // sizeof(BlockQ4_K) @@ -3858,7 +3867,7 @@ TEST_CASE("keep-quant Q4_K WMMA tile arm matches the CPU oracle on RDNA4") { CHECK(Nmse(ref, gotf) <= kNmseTol); } const uint64_t wmma_after = vt::rocm::KQuantWmmaQ4KDispatchCount(); - CHECK(wmma_after > wmma_before); + CHECK((wmma_after > wmma_before) == ExpectQuantWmma()); } rocm.DestroyQueue(q); } @@ -3881,7 +3890,10 @@ TEST_CASE("keep-quant GEMM matches the CPU oracle when M and N are not multiples REQUIRE(OpAvailable(vt::OpId::kMatmulBTQuant, DeviceType::kROCM)); const std::string actual_arch = vt::rocm::DeviceArchName(0); - if (!vt::rocm::GcnArchNameIsGfx12PrefillWmma(actual_arch)) return; + // Test admission is independent of the production policy: narrowing that + // policy must fail dispatch assertions instead of skipping this case. + const auto stem = actual_arch.substr(0, actual_arch.find(':')); + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") return; constexpr int64_t M = 37, N = 50, K = 512; struct Fmt { @@ -3959,7 +3971,7 @@ TEST_CASE("keep-quant GEMM matches the CPU oracle when M and N are not multiples // silent full fallback to scalar would pass the NMSE check above just // as well, which is exactly why #2109's own real-model measurement // needed a hand-trimmed prompt before this fix. - CHECK(wmma_after > wmma_before); + CHECK((wmma_after > wmma_before) == ExpectQuantWmma()); rocm.DestroyQueue(q); } } @@ -3988,7 +4000,10 @@ TEST_CASE("keep-quant GEMM matches the CPU oracle when only one of M/N is misali REQUIRE(OpAvailable(vt::OpId::kMatmulBTQuant, DeviceType::kROCM)); const std::string actual_arch = vt::rocm::DeviceArchName(0); - if (!vt::rocm::GcnArchNameIsGfx12PrefillWmma(actual_arch)) return; + // Test admission is independent of the production policy: narrowing that + // policy must fail dispatch assertions instead of skipping this case. + const auto stem = actual_arch.substr(0, actual_arch.find(':')); + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") return; constexpr int64_t K = 512; struct Fmt { @@ -4074,7 +4089,7 @@ TEST_CASE("keep-quant GEMM matches the CPU oracle when only one of M/N is misali : vt::rocm::KQuantWmmaQ4KDispatchCount(); // Reachability: the WMMA arm must still fire for its aligned corner // even though one dimension is a remainder-only split. - CHECK(wmma_after > wmma_before); + CHECK((wmma_after > wmma_before) == ExpectQuantWmma()); rocm.DestroyQueue(q); } } diff --git a/tests/vt/test_rocm_arch.cpp b/tests/vt/test_rocm_arch.cpp index 68734511c..09022c77d 100644 --- a/tests/vt/test_rocm_arch.cpp +++ b/tests/vt/test_rocm_arch.cpp @@ -16,6 +16,7 @@ #include #include "vt/rocm/rocm_arch.h" +#include "vt/rocm/rocm_quant_wmma_arch.h" #include "vt/rocm/rocm_skinny_gemm_arch.h" using vt::rocm::CapabilityFromGcnArch; @@ -110,6 +111,27 @@ TEST_CASE("SharedK WMMA host gate is gfx1200/gfx1201 prefix, not substring") { static_assert(!GcnArchNameIsGfx12PrefillWmma("gfx12010")); } +TEST_CASE("quantized WMMA admits only measured device names and HIP features") { + using vt::rocm::GcnArchNameHasQuantWmma; + for (const char* name : {"gfx1100", "gfx1200", "gfx1201", "gfx1100:xnack-", + "gfx1100:sramecc+:xnack-", "gfx1200:sramecc-", + "gfx1201:xnack+:sramecc+"}) { + CAPTURE(std::string(name)); + CHECK(GcnArchNameHasQuantWmma(name)); + } + for (const char* name : {"", "gfx110", "gfx11000", "gfx1100garbage", + "agfx1100", "gfx1100:", "gfx1100:xnack", "gfx1100:foo+", + "gfx1100:xnack-:", "gfx1100::xnack-", "gfx1201garbage", + "gfx1100:xnack-:xnack+", "gfx1200:sramecc+:sramecc+", + "gfx1101", "gfx1102", "gfx1103", "gfx1150", "gfx1151", + "gfx1202", "gfx1210", "gfx942", "gfx1030"}) { + CAPTURE(std::string(name)); + CHECK_FALSE(GcnArchNameHasQuantWmma(name)); + } + CHECK_FALSE(vt::rocm::GcnArchNameIsGfx12PrefillWmma("gfx1100")); + CHECK_FALSE(vt::rocm::GcnArchNameIsGfx12PrefillWmma("gfx1100:xnack-")); +} + TEST_CASE("the parse is constexpr, so a wrong answer is a compile error") { // Not decoration: it is what lets the capability be asserted without a device. static_assert(CapabilityFromGcnArch("gfx1100")->first == 11); diff --git a/tools/rocm_quant_wmma/capture.cpp b/tools/rocm_quant_wmma/capture.cpp new file mode 100644 index 000000000..29a88d22b --- /dev/null +++ b/tools/rocm_quant_wmma/capture.cpp @@ -0,0 +1,133 @@ +// Native adapter for plugin d4c1f0d tests/test_kernels.py::test_mmq. +// Input generation and the unchanged upstream tolerances live in primary.py. +#include +#include +#include +#include +#include +#include +#include +#include +#include "vt/backend.h" +#include "vt/ops.h" + +#ifdef VLLM_CPP_HIP +namespace vt::rocm { +std::string DeviceArchName(int); +uint64_t KQuantWmmaDispatchCount(); +uint64_t KQuantWmmaQ4KDispatchCount(); +} // namespace vt::rocm +#endif + +namespace { +using Json = nlohmann::json; +using Path = std::filesystem::path; +std::string Read(const Path& path) { + std::ifstream file(path, std::ios::binary); + if (!file) throw std::runtime_error("cannot read " + path.string()); + return {std::istreambuf_iterator(file), std::istreambuf_iterator()}; +} +void Write(const Path& path, const std::string& bytes) { + std::ofstream file(path, std::ios::binary); + file.write(bytes.data(), static_cast(bytes.size())); + if (!file) throw std::runtime_error("cannot write " + path.string()); +} + +#ifdef VLLM_CPP_HIP +constexpr vt::Device kDevice{vt::DeviceType::kROCM, 0}; +class Storage { + public: + Storage() : backend(vt::GetBackend(kDevice.type)), queue(backend.CreateQueue()) {} + ~Storage() { + for (auto* allocation : allocations) backend.Free(allocation); + backend.DestroyQueue(queue); + } + void* Allocate(size_t size) { + auto* pointer = backend.Alloc(size); + allocations.push_back(pointer); + return pointer; + } + vt::Tensor Upload(const std::string& bytes, vt::DType dtype, int64_t rows, int64_t width) { + auto* pointer = Allocate(bytes.size()); + backend.Copy(queue, pointer, bytes.data(), bytes.size()); + return vt::Tensor::Contiguous(pointer, dtype, kDevice, {rows, width}); + } + vt::Backend& backend; + vt::Queue queue; + std::vector allocations; +}; + +void Capture(const Path& input, const Path& output) { + const auto arch = vt::rocm::DeviceArchName(0); + const auto stem = arch.substr(0, arch.find(':')); + if (stem != "gfx1100" && stem != "gfx1200" && stem != "gfx1201") + throw std::runtime_error("capture requires an admitted physical WMMA device"); + const auto manifest = Json::parse(Read(input)); + std::filesystem::create_directories(output); + Json report = {{"architecture", arch}, {"cases", Json::array()}}; + for (const auto& entry : manifest.at("cases")) { + const auto name = entry.at("name").get(); + const int type = entry.at("type").get(); + if (type != 12 && type != 14) throw std::runtime_error("only Q4_K/Q6_K are in scope"); + const auto dtype = type == 12 ? vt::DType::kQ4_K : vt::DType::kQ6_K; + const int64_t m = entry.at("tokens").get(); + const int64_t n = entry.at("rows").get(); + const int64_t k = entry.at("width").get(); + const auto input_dtype = entry.at("dtype").get(); + const auto act_dtype = input_dtype == "f16" ? vt::DType::kF16 : + input_dtype == "bf16" ? vt::DType::kBF16 : vt::DType::kF32; + if (input_dtype != "f16" && input_dtype != "bf16" && input_dtype != "f32") + throw std::runtime_error("invalid activation dtype"); + // f32 is the harness adaptation for F16 output, absent from the native ABI. + // BF16 uses its native two-byte output. primary.py narrows only F16 cases. + const auto out_dtype = act_dtype == vt::DType::kBF16 ? vt::DType::kBF16 : vt::DType::kF32; + const auto packed = Read(input.parent_path() / entry.at("packed").get()); + const auto activation = Read(input.parent_path() / entry.at("activation").get()); + if (m <= 0 || n <= 0 || k <= 0 || k % 256 != 0 || + packed.size() != static_cast(n) * vt::RowSizeBytes(dtype, k) || + activation.size() != static_cast(m * k) * vt::SizeOf(act_dtype)) + throw std::runtime_error("fixture geometry or bytes differ"); + Storage storage; + auto a = storage.Upload(activation, act_dtype, m, k); + auto b = storage.Upload(packed, dtype, n, k); + std::string result(static_cast(m * n) * vt::SizeOf(out_dtype), '\0'); + auto out = vt::Tensor::Contiguous(storage.Allocate(result.size()), out_dtype, kDevice, {m, n}); + const auto count = type == 12 ? vt::rocm::KQuantWmmaQ4KDispatchCount : vt::rocm::KQuantWmmaDispatchCount; + const auto before = count(); + const auto reference_before = vt::GetReferenceTierHits(); + vt::MatmulBTQuant(storage.queue, out, a, b); + storage.backend.Copy(storage.queue, result.data(), out.data, result.size()); + storage.backend.Synchronize(storage.queue); + const auto calls = count() - before; + const char* knob = std::getenv("VT_ROCM_QUANT_WMMA"); + const bool expected = m >= 16 && n >= 16 && (knob == nullptr || std::string(knob) != "0"); + if (calls != static_cast(expected) || vt::GetReferenceTierHits() != reference_before) + throw std::runtime_error("native WMMA dispatch or reference fallback mismatch: " + name); + const auto result_name = name + ".bin"; + Write(output / result_name, result); + report["cases"].push_back({{"name", name}, {"dtype", vt::Name(out_dtype)}, + {"wmma_calls", calls}, {"result", result_name}}); + std::printf("NATIVE %s wmmas=%llu\n", name.c_str(), static_cast(calls)); + } + if (report["cases"].empty()) throw std::runtime_error("empty input manifest"); + Write(output / "report.json", report.dump(2) + "\n"); +} +#endif +} // namespace + +int main(int argc, char** argv) { + try { +#ifdef VLLM_CPP_HIP + if (argc != 3) throw std::runtime_error("use MANIFEST OUTPUT"); + Capture(argv[1], argv[2]); + return 0; +#else + (void)argc; + (void)argv; + throw std::runtime_error("native capture requires a HIP build"); +#endif + } catch (const std::exception& error) { + std::fprintf(stderr, "CAPTURE FAILED: %s\n", error.what()); + return 1; + } +} diff --git a/tools/rocm_quant_wmma/primary.py b/tools/rocm_quant_wmma/primary.py new file mode 100644 index 000000000..05d1eac12 --- /dev/null +++ b/tools/rocm_quant_wmma/primary.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python3 +"""Port plugin d4c1f0d tests/test_kernels.py::test_mmq for Q4_K and Q6_K. + +Preserve every original tensor, tokens 7/83/128/2048, widths 256/1024, +F16/BF16/F32 inputs, seed zero, and the original dtype-specific tolerances. +The sole dtype adaptation narrows native F32 output to F16 after capture, +because the native MatmulBTQuant contract has no F16 output. +Run capture inside the task's pinned primary runtime under the GPU mutex. +""" +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path +import random + +PIN = "d4c1f0d082fc7cd4350da56689109a01c1f29d6c" +ATOL = {"f16": 1, "bf16": 1.5, "f32": 1.2} +RTOL = {"f16": 1e-1, "bf16": 1e4, "f32": 2e1} + + +def seal(path: Path) -> dict: + return {"bytes": path.stat().st_size, "sha256": hashlib.sha256(path.read_bytes()).hexdigest()} + + +def raw(tensor) -> bytes: + import torch + return tensor.contiguous().view(torch.uint8).cpu().numpy().tobytes() + + +def capture(fixture_manifest: Path, fixtures: Path, output: Path) -> None: + import gguf + import numpy as np + import torch + import vllm_gguf_plugin.ops as ops + + source = json.loads(fixture_manifest.read_text()) + expected_tensors = [entry for entry in source["cases"] if entry["type"] in (12, 14)] + if len(expected_tensors) != 20: + raise ValueError("the original Q4_K/Q6_K corpus must contain all 20 tensors") + output.mkdir(parents=True, exist_ok=True) + manifest = {"version": 1, "plugin_pin": PIN, "fixture_manifest": seal(fixture_manifest), + "torch": torch.__version__, "torch_git": torch.version.git_version, + "hip": torch.version.hip, "architecture": torch.cuda.get_device_properties(0).gcnArchName, + "ops_source": seal(Path(ops.__file__)), "fixtures": {}, "cases": []} + for quant_name in ("Q4_K", "Q6_K"): + quant_type = gguf.GGMLQuantizationType[quant_name] + for hidden in (256, 1024): + filename = f"Quant_{quant_name}_{hidden}.gguf" + fixture = fixtures / filename + expected = source["fixtures"][filename] + if seal(fixture) != expected: + raise ValueError(f"original fixture hash or size differs: {filename}") + manifest["fixtures"][filename] = expected + tensors = gguf.GGUFReader(fixture).tensors + selected = [entry for entry in expected_tensors if entry["source"] == filename] + if [tensor.name for tensor in tensors] != [entry["tensor"] for entry in selected]: + raise ValueError("original tensor names or ordering differs") + for name, dtype in (("f16", torch.half), ("bf16", torch.bfloat16), ("f32", torch.float32)): + for tokens in (7, 83, 128, 2048): + # Exact upstream seed_everything and rand device/dtype. + random.seed(0) + np.random.seed(0) + torch.manual_seed(0) + x = torch.rand((tokens, hidden), dtype=dtype, device="cuda") + activation_name = f"{quant_name}-{hidden}-{name}-{tokens}.activation" + (output / activation_name).write_bytes(raw(x)) + for index, tensor in enumerate(tensors): + case_name = f"{quant_name}-{hidden}-{index}-{name}-{tokens}" + packed_name = f"{quant_name}-{hidden}-{index}.packed" + packed_path = output / packed_name + packed_path.write_bytes(tensor.data.tobytes()) + with torch.inference_mode(): + weight = torch.tensor(gguf.dequantize(tensor.data, quant_type), device="cuda").to(dtype) + reference = x @ weight.T + packed = torch.tensor(tensor.data, device="cuda") + actual = ops.ggml_mul_mat_a8(packed, x, int(quant_type), packed.shape[0]).to(dtype) + torch.testing.assert_close(actual, reference, atol=ATOL[name], rtol=RTOL[name]) + reference_name = case_name + ".reference" + primary_name = case_name + ".primary" + (output / reference_name).write_bytes(raw(reference)) + (output / primary_name).write_bytes(raw(actual)) + manifest["cases"].append({"name": case_name, "type": int(quant_type), + "source": filename, "tensor": tensor.name, + "tokens": tokens, "rows": int(packed.shape[0]), "width": hidden, + "dtype": name, "seed": 0, "packed": packed_name, + "packed_seal": seal(packed_path), "activation": activation_name, + "activation_seal": seal(output / activation_name), + "reference": reference_name, "primary": primary_name, + "reference_seal": seal(output / reference_name), + "primary_seal": seal(output / primary_name), + "native_extension": ops._cuda_gemm_kernel_available("ggml_mul_mat_a8", int(quant_type)), + "atol": ATOL[name], "rtol": RTOL[name]}) + print(f"PRIMARY {case_name} PASS", flush=True) + if len(manifest["cases"]) != 240: + raise ValueError("original coverage is not 240 tensor cases") + (output / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n") + + +def compare(manifest_path: Path, native: Path) -> None: + import torch + + manifest = json.loads(manifest_path.read_text()) + report = json.loads((native / "report.json").read_text()) + actual_cases = {entry["name"]: entry for entry in report["cases"]} + if len(actual_cases) != len(report["cases"]) or set(actual_cases) != {entry["name"] for entry in manifest["cases"]}: + raise ValueError("native case coverage differs from the complete primary manifest") + dtypes = {"f16": torch.half, "bf16": torch.bfloat16, "f32": torch.float32} + comparisons = [] + for case in manifest["cases"]: + entry = actual_cases[case["name"]] + for name in ("packed", "activation", "reference", "primary"): + if seal(manifest_path.parent / case[name]) != case[name + "_seal"]: + raise ValueError(f"changed {name} bytes: {case['name']}") + dtype = dtypes[case["dtype"]] + expected_native_dtype = "bf16" if case["dtype"] == "bf16" else "f32" + if entry["dtype"] != expected_native_dtype: + raise ValueError("native output dtype differs from the explicit adaptation") + result_path = native / entry["result"] + got = torch.frombuffer(bytearray(result_path.read_bytes()), dtype=dtypes[entry["dtype"]]).clone().to(dtype) + if got.numel() != case["tokens"] * case["rows"]: + raise ValueError("native output shape differs") + for field in ("reference", "primary"): + ref = torch.frombuffer(bytearray((manifest_path.parent / case[field]).read_bytes()), dtype=dtype).clone() + torch.testing.assert_close(got, ref, atol=ATOL[case["dtype"]], rtol=RTOL[case["dtype"]]) + comparisons.append({"name": case["name"], "verdict": "PASS", "result": seal(result_path), + "atol": ATOL[case["dtype"]], "rtol": RTOL[case["dtype"]]}) + print(f"NATIVE PARITY {case['name']} PASS", flush=True) + (native / "comparison.json").write_text(json.dumps({"verdict": "PASS", "cases": comparisons}, indent=2) + "\n") + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + commands = parser.add_subparsers(dest="command", required=True) + run = commands.add_parser("capture") + run.add_argument("fixture_manifest", type=Path) + run.add_argument("fixtures", type=Path) + run.add_argument("output", type=Path) + check = commands.add_parser("compare") + check.add_argument("manifest", type=Path) + check.add_argument("native", type=Path) + args = parser.parse_args() + if args.command == "capture": + capture(args.fixture_manifest, args.fixtures, args.output) + else: + compare(args.manifest, args.native) + + +if __name__ == "__main__": + main() From c176168cbbdcca700b6346ebb6a1914033b85eda Mon Sep 17 00:00:00 2001 From: Vikash Loomba Date: Sun, 13 Sep 2026 21:42:29 -0700 Subject: [PATCH 3/8] record(KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3): preserve gfx1100 WMMA gate receipts Keep the physical red-first results, original primary fixture comparisons, public scalar control, emitted instructions, and negative mutations with the architecture admission change. Both executing tile bodies retain their committed-spec hashes. The complete HIP gate passes all 29 registered tests with five unchanged resource skips. The full staged preflight exits zero with 12 unchanged skips. Four CPU and four public production mutations fail as intended, with immutable source hashes preserved. Full-model performance and fresh review remain with the coordinating operator. Tracks ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:GPT-6 [Codex] --- .agents/specs/rocm-rdna3-quant-wmma.md | 13 +- .../rocm-rdna3-quant-wmma/README.md | 202 ++ .../rocm-rdna3-quant-wmma/arch-green.log | 6 + .../rocm-rdna3-quant-wmma/arch-red.log | 26 + .../rocm-rdna3-quant-wmma/artifacts.json | 65 + .../rocm-rdna3-quant-wmma/build-targets.json | 27 + .../rocm-rdna3-quant-wmma/compiler.txt | 4 + .../cpu-mutation-recipe.py | 28 + ...pu-mutations-accept-malformed-features.log | 38 + .../cpu-mutations-admit-gfx1101.log | 14 + .../cpu-mutations-reject-gfx1100.log | 22 + .../cpu-mutations-widen-attention.log | 20 + .../rocm-rdna3-quant-wmma/cpu-mutations.json | 98 + .../gfx1100-wmma-isa.txt | 16 + .../rocm-rdna3-quant-wmma/hardware-green.log | 6 + .../rocm-rdna3-quant-wmma/hardware-red.log | 66 + .../rocm-rdna3-quant-wmma/hardware-scalar.log | 6 + .../rocm-rdna3-quant-wmma/hip-gate-green.log | 71 + .../hip-gate-missing-alias.log | 106 + .../native-comparison.log | 240 ++ .../rocm-rdna3-quant-wmma/native-mmq.log | 240 ++ .../original-mmq-comparison.json | 2405 +++++++++++++++++ .../original-mmq-summary.json | 74 + .../rocm-rdna3-quant-wmma/preflight-first.log | 284 ++ .../preflight-results.json | 27 + .../preflight-staged.log | 286 ++ .../production-mutation-recipe.py | 63 + .../production-mutations-admission.log | 9 + .../production-mutations-q4-launch.log | 13 + .../production-mutations-q6-launch.log | 11 + .../production-mutations-scalar-control.log | 4 + .../production-mutations.json | 74 + .../rocm-rdna3-quant-wmma/public-green.log | 13 + .../rocm-rdna3-quant-wmma/public-red.log | 9 + .../rocm-rdna3-quant-wmma/tile-bodies.json | 10 + 35 files changed, 4591 insertions(+), 5 deletions(-) create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/README.md create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/arch-green.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/arch-red.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/artifacts.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/build-targets.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/compiler.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutation-recipe.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-accept-malformed-features.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-admit-gfx1101.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-reject-gfx1100.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-widen-attention.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/gfx1100-wmma-isa.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-green.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-red.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-scalar.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-green.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-missing-alias.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/native-comparison.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/native-mmq.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-comparison.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-summary.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-first.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-results.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-staged.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutation-recipe.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-admission.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q4-launch.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q6-launch.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-scalar-control.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/public-green.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/public-red.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/tile-bodies.json diff --git a/.agents/specs/rocm-rdna3-quant-wmma.md b/.agents/specs/rocm-rdna3-quant-wmma.md index fe8a77e36..b4ead5226 100644 --- a/.agents/specs/rocm-rdna3-quant-wmma.md +++ b/.agents/specs/rocm-rdna3-quant-wmma.md @@ -9,10 +9,13 @@ Commit this specification before implementation. ## Now -`SPIKE`. Source inspection supports reusing the existing Q4_K and Q6_K -kernels. Neither compilation nor execution on gfx1100 is proved yet. -The next action is a failing gfx1100 dispatch test, followed by the smallest -admission change and physical execution of those unchanged kernels. +`SPIKE`. Implementation `c3fe98ba6c55ce71e75746e1b944a27640464e0f` passes +G1-G3 on physical gfx1100. Both executing tile bodies remain unchanged. +The 240 original primary fixture cases pass with their existing tolerances. +The public gate matches every captured logit and completion token against its +scalar control. G4 and fresh review remain with the coordinating operator. +[Implementation receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/README.md) +record the commands, red-first results, full HIP gate, and mutations. ## Scope @@ -144,4 +147,4 @@ owners. The parent RDNA4 row and its open cooperative-tile work remain separate. | ID | Upstream source | Local anchor | Tests and evidence | Spec | State | Owner | Issue | |---|---|---|---|---|---|---|---| -| `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3` | Pinned llama.cpp RDNA3 integer WMMA; rocWMMA 2.2.1 gfx11 fragments | `KQuantGemmKWmmaQ4K`, `KQuantGemmKWmmaQ6K` | G1-G5 pending | [This spec](rocm-rdna3-quant-wmma.md) | `SPIKE` | RDNA3 helper; coordinating operator | `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ` | +| `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3` | Pinned llama.cpp RDNA3 integer WMMA; rocWMMA 2.2.1 gfx11 fragments | `KQuantGemmKWmmaQ4K`, `KQuantGemmKWmmaQ6K` | [G1-G3 receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/README.md), G4 and fresh review pending | [This spec](rocm-rdna3-quant-wmma.md) | `SPIKE` | RDNA3 helper; coordinating operator | `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ` | diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md b/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md new file mode 100644 index 000000000..f06f442ad --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md @@ -0,0 +1,202 @@ +# gfx1100 quantized WMMA admission receipts + +Row: `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3`. +Issue: `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ`. +Spec: [Reuse quantized WMMA prefill](../../../.agents/specs/rocm-rdna3-quant-wmma.md). +Implementation: `c3fe98ba6c55ce71e75746e1b944a27640464e0f`. +Spec ancestor: `a5b5c92f2604386fcf162d5e12a42988f412db3b`. +Measured on 13 September 2026 on the local RX 7900 XTX, physical `gfx1100`. +Every GPU invocation held `/home/vikash/gpu.lock` and selected device 0 with +`HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0`. + +## Results + +| Gate | Result | Evidence | +|---|---|---| +| G1 architecture policy | Satisfied. The CPU suite passes 16 cases and 109 assertions. The initial gfx12-only stub fails four assertions. | [Red](arch-red.log), [green](arch-green.log) | +| G1 physical dispatch | Satisfied. Before admission, all four cases fail ten dispatch assertions. After admission, all 46 assertions pass. | [Red](hardware-red.log), [green](hardware-green.log) | +| G2 unchanged tile bodies | Satisfied. The executing Q4_K and Q6_K bodies are byte-identical to the committed spec ancestor. | [Body hashes](tile-bodies.json) | +| G2 signed-int8 instructions | Satisfied. The emitted gfx1100 object contains eight `v_wmma_i32_16x16x16_iu8` instructions across Q4_K and Q6_K, each with F32 and BF16 outputs. | [ISA excerpt](gfx1100-wmma-isa.txt), [artifact hashes](artifacts.json) | +| G2 original upstream fixture gate | Satisfied. All 240 native tensor cases pass against the original dense reference and the primary plugin output. | [Summary](original-mmq-summary.json), [comparison](original-mmq-comparison.json), [log](native-comparison.log) | +| G2 scalar control | Satisfied. A separate process with `VT_ROCM_QUANT_WMMA=0` passes all four physical cases and 46 assertions. | [Scalar log](hardware-scalar.log) | +| G3 public production entry | Satisfied. Prompts of 16 and 37 tokens each enter two Q4_K calls and one Q6_K call. All 1024 logits and eight completion tokens match the scalar child process. | [Red](public-red.log), [green](public-green.log) | +| G5 broad HIP gate | Satisfied with the five baseline resource skips listed below. All 29 registered tests have zero failures after a clean rebuild. | [HIP gate](hip-gate-green.log) | +| G5 repository preflight | Executed with exit 0 and 12 unchanged skips. The skips remain unavailable checks, rather than passes. | [First](preflight-first.log), [staged](preflight-staged.log) | +| G5 implementer mutations | Satisfied. Four CPU policy mutations and four public production mutations fail. The immutable original files retain their hashes. | [CPU mutations](cpu-mutations.json), [production mutations](production-mutations.json) | +| G4 full-model correctness and performance | Pending the coordinating operator's model and oracle runs. No throughput, latency, or memory claim is made here. | Owning spec | +| G5 fresh review and operator verification | Pending the coordinating operator's separate receipts. Implementer results do not discharge these obligations. | Owning spec | + +The existing physical fixtures preserve the partial four-wave block at +`M=32, N=48, K=512`, both output dtypes, joint tails, and separate bottom and +right tails. Their normalized mean squared error limit remains `5e-4`. +The hardware test selects the physical device independently of production +admission. Restoring gfx12-only admission cannot skip the gfx1100 test. + +The first broad invocation omitted `test_qwen35_moe_kq_device`, the executable +behind the `test_rocm_qwen35_moe_kq_device` CTest alias. That invocation failed +with one test not run. The [failed receipt](hip-gate-missing-alias.log) remains. +Building the actual executable and rerunning the complete gate produced the +passing receipt. No product change was needed. + +The five baseline skips are `test_rocm_moe_bf16`, `test_rocm_moe_upstream`, +and `test_rocm_f16_model`, which require model fixtures, plus +`test_rocm_attn_gate_split_device_binding` and `test_rocm_f16_device`, which +require two visible devices. This gate deliberately exposed only device 0. + +## Build and execution recipe + +Worktree: `/home/vikash/vllm.cpp-rdna3-wmma-impl`. +Build directory: `build-rdna3-wmma`. The default build type preserves test +assertions. [Compiler details](compiler.txt) identify Clang 23 and its exact +revision. The artifact manifest seals the rocWMMA 2.2.1 headers and binaries. + +```sh +cmake -S . -B build-rdna3-wmma -G Ninja \ + -DVLLM_CPP_HIP=ON -DVLLM_CPP_HIP_ARCHITECTURES=gfx1100 \ + -DCMAKE_HIP_COMPILER=/opt/rocm/lib/llvm/bin/clang++ -DROCM_PATH=/opt/rocm \ + -DVLLM_CPP_CUDA=OFF -DVLLM_CPP_VULKAN=OFF -DVLLM_CPP_METAL=OFF \ + -DVLLM_CPP_MLX=OFF -DVLLM_CPP_TENSTORRENT=OFF \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_HIP_COMPILER_LAUNCHER=ccache +cmake --build build-rdna3-wmma --target test_rocm_arch \ + test_backend_cross_device test_capi_rocm_quant_wmma rocm_quant_wmma_capture -j4 +build-rdna3-wmma/tests/test_rocm_arch +flock /home/vikash/gpu.lock env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + timeout 120s build-rdna3-wmma/tests/test_backend_cross_device \ + '--test-case=*WMMA tile arm*,*M and N are not multiples*,*only one of M/N*' +flock /home/vikash/gpu.lock env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + VT_ROCM_QUANT_WMMA=0 timeout 120s build-rdna3-wmma/tests/test_backend_cross_device \ + '--test-case=*WMMA tile arm*,*M and N are not multiples*,*only one of M/N*' +flock /home/vikash/gpu.lock env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + timeout 120s build-rdna3-wmma/tests/test_capi_rocm_quant_wmma +``` + +After the header change, the implementer clean-rebuilt every ROCm test target +with `--clean-first` and `-j4`. The [target list](build-targets.json) includes +the CTest alias's actual executable. + +```sh +python3 - <<'PYBUILD' +import json +import subprocess +from pathlib import Path +targets = json.loads(Path("docs/bench-evidence/rocm-rdna3-quant-wmma/build-targets.json").read_text()) +subprocess.run(["cmake", "--build", "build-rdna3-wmma", "--clean-first", + "--target", *targets, "-j4"], check=True) +PYBUILD +flock /home/vikash/gpu.lock env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + timeout 180s ctest --test-dir build-rdna3-wmma \ + -R 'rocm|cross_device' --output-on-failure +``` + +## Primary oracle and memory format + +The developer selected task snapshots vLLM +`39545e475d3627287ff69c25465dc0bd405f67e1` and GGUF plugin +`d4c1f0d082fc7cd4350da56689109a01c1f29d6c`. +The operator built and ran their isolated runtime. The manifest reports +PyTorch `2.12.0+git6bbd260`, HIP `7.2.53211`, and physical `gfx1100`. +These are the primary runtime's dependency versions. The native build uses +the separate local HIP 7.15 and rocWMMA 2.2.1 toolchain. + +The port preserves plugin `tests/test_kernels.py::test_mmq`, lines 145 to 196, +and `tests/utils.py::seed_everything`. Every original Q4_K and Q6_K tensor +runs at `M=7,83,128,2048`, `K=256,1024`, with F16, BF16, and F32 input, +and seed zero. The four source GGUF files retain the hashes in the +[fixture summary](original-mmq-summary.json). + +| Output dtype | Original absolute tolerance | Original relative tolerance | +|---|---|---| +| F16 | 1 | 0.1 | +| BF16 | 1.5 | 10000 | +| F32 | 1.2 | 20 | + +All 240 cases select the compiled plugin extension. The executing source chain +is `vllm_gguf_plugin/ops.py::ggml_mul_mat_a8`, line 200, to +`vllm_gguf_plugin/csrc/gguf/gguf_kernel.hip::ggml_mul_mat_a8`, line 221. +That function creates output with the input dtype and quantizes activations +through `quantize_row_q8_1_cuda`. Its Q4_K and Q6_K branches call +`ggml_mul_mat_q4_K_q8_1_cuda` and `ggml_mul_mat_q6_K_q8_1_cuda` in +`vllm_gguf_plugin/csrc/gguf/mmq_hip.cuh`, lines 490 and 591. +The corresponding device entry points are `mul_mat_q4_K` and `mul_mat_q6_K`. + +The native path retains its existing Q8_K activation format and F32 or BF16 +output contract. This row changes architecture admission only. The test adapter +narrows native F32 output to F16 for the original upstream F16 comparison. +BF16 emits directly from the native kernel. No model buffer dtype changes. +The synthetic public model uses the normal BF16 model path. + +The adapter commands use the runtime and input locations supplied by this task. +The runtime wrapper runs inside the caller's GPU mutex. + +```sh +flock /home/vikash/gpu.lock timeout 300s \ + /home/vikash/oracle/rdna3-wmma-latest/python-gpu-under-lock.sh \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-primary.py capture \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-original-fixture-manifest.json \ + /home/vikash/models/test-gguf-sample \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-primary +flock /home/vikash/gpu.lock env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + timeout 300s build-rdna3-wmma/tests/rocm_quant_wmma_capture \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-primary/manifest.json \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-native +flock /home/vikash/gpu.lock timeout 300s \ + /home/vikash/oracle/rdna3-wmma-latest/python-gpu-under-lock.sh \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-primary.py compare \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-primary/manifest.json \ + /home/vikash/oracle/rdna3-wmma-latest/mmq-native +``` + +The copied primary script equals +`tools/rocm_quant_wmma/primary.py` at the implementation commit. +The original fixture manifest comes from the existing +`tools/rocm_quant_gather/primary.py::export_upstream` corpus exporter. +The raw matrices remain in the recorded oracle directory, with manifest and +output hashes sealed in this row's receipts. + +## Mutation method + +[CPU recipe](cpu-mutation-recipe.py) builds copied policy headers against the +unchanged architecture test. Each mutation fails that suite. +[Production recipe](production-mutation-recipe.py) compiles a copied grouped +GEMM translation unit, substitutes its object into a copied static archive, +and links the unchanged public test against that archive. +The originals remain byte-identical throughout every mutation. + +| Mutation | Observed failure | +|---|---| +| Reject gfx1100 in the CPU predicate | gfx1100 admission assertions fail | +| Admit unmeasured gfx1101 | exclusion assertion fails | +| Accept malformed feature suffixes | malformed-name assertions fail | +| Widen the attention predicate | attention exclusion assertions fail | +| Restore gfx12-only runtime admission | public Q4_K dispatch assertion fails | +| Delete only the Q4_K launch, retaining its counter | scalar completion token comparison fails | +| Delete only the Q6_K launch, retaining its counter | completion fails because the unwritten output produces an invalid token | +| Remove the scalar-control environment override | the scalar child's dispatch assertion fails | + +Removing a launch leaves its grid variable unused. The scratch copy retains +the grid computation with a void cast. Removing Q4_K instantiation also leaves +two internal helpers unused. Scratch compilation suppresses only +`-Wunneeded-internal-declaration`. The production build retains `-Werror` and +its ordinary warning flags. The initial scratch compile errors are harness +failures, not mutation evidence. Each recorded mutation subsequently compiles, +executes, and exits 1 for the stated runtime assertion. + +## Repository preflight + +The first full preflight, invoked before edits, completes with exit 0 and +12 explicit skips. [Full receipt](preflight-first.log). +Both full invocations use `GIT_CONFIG_GLOBAL=/dev/null` because the repository's +onboarding test assumes Git's `master` default while the user's global setting +selects `main`. No global configuration or checker changes are made. + +Seven skipped suites require NumPy, which this host Python cannot import. +Five checks require arguments that `agent-preflight.sh` does not supply: +`check-arm-isa-build.py`, `check-cpu-isa-build.py`, `check-cuda-fat-gencode.py`, +`check-pr-size.py`, and `check-triton-aot-multiarch.py`. +The relevant gfx1100 instruction path is separately inspected in this row. +These skips do not constitute executed gate results. +The full staged preflight completes with exit 0, no failed checks, and the +same 12 explicit skips as the first run. It compiles all eight translation +units in scope under the default host configuration. +[Full staged receipt](preflight-staged.log). The record, symbol-anchor, and +staged NOW checks also pass after the evidence and spec updates. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/arch-green.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/arch-green.log new file mode 100644 index 000000000..f90542355 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/arch-green.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 16 | 16 passed | 0 failed | 0 skipped +[doctest] assertions: 109 | 109 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/arch-red.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/arch-red.log new file mode 100644 index 000000000..5fb3c1ad2 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/arch-red.log @@ -0,0 +1,26 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +tests/vt/test_rocm_arch.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +tests/vt/test_rocm_arch.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: name := 1 + +tests/vt/test_rocm_arch.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: name := 1 + +tests/vt/test_rocm_arch.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: name := 1 + +tests/vt/test_rocm_arch.cpp:128: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: name := 1 + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 29 | 25 passed | 4 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/artifacts.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/artifacts.json new file mode 100644 index 000000000..0983a4e80 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/artifacts.json @@ -0,0 +1,65 @@ +{ + "implementation_sha": "c3fe98ba6c55ce71e75746e1b944a27640464e0f", + "artifacts": { + "/home/vikash/vllm.cpp-rdna3-wmma-impl/src/vt/rocm/rocm_grouped_gemm.hip": { + "bytes": 92976, + "sha256": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/include/vt/rocm/rocm_quant_wmma_arch.h": { + "bytes": 1265, + "sha256": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/include/vt/rocm/rocm_arch.h": { + "bytes": 9746, + "sha256": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o": { + "bytes": 418968, + "sha256": "55ec9348210144334dc3834c263e9476ac05e6d3320e82005db33581ea8f7054" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o.0.hipv4-amdgcn-amd-amdhsa--gfx1100": { + "bytes": 304432, + "sha256": "57d4e41b61475719c7460cf1d3b368b91cc0128c8a74802907e14fa6c38bd55d" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_backend_cross_device": { + "bytes": 52683648, + "sha256": "918268a8e67561d4a90c35aa3aa6790496e40bf6af474b046d9c3a0e1b37c935" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_capi_rocm_quant_wmma": { + "bytes": 51344640, + "sha256": "c5cb1c6107a50a1f5bd0aec5fd72f5a6bd16d321e836e71e7fefdf9f8c831c85" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/rocm_quant_wmma_capture": { + "bytes": 51282264, + "sha256": "ff0d1ff8e046ed76344993da61e4ea1f2a795fe36ffa0c3654cc397838eb51b5" + }, + "/opt/rocm/include/rocwmma/rocwmma.hpp": { + "bytes": 18407, + "sha256": "9e677443ebd05b941a18f27f9b7ebe919d20fa8b9266de17fcd3923ee5bddb32" + }, + "/opt/rocm/include/rocwmma/internal/wmma_impl.hpp": { + "bytes": 142214, + "sha256": "ae8d7771d037979371e6029b7e4b1627cdeb5a53d300ca65371bf1731aea8688" + }, + "/opt/rocm/include/rocwmma/internal/config.hpp": { + "bytes": 8355, + "sha256": "9015b7f60ac362ba8e3cb31a7659846046961ba51a7dc0abc4a071709670c055" + }, + "/tmp/wmma-impl-gfx1100-final.isa": { + "bytes": 3589305, + "sha256": "4338c05023b2ace0814bd5a7ea579afd2940fdcc6b59bf83480438eef6387688" + }, + "/home/vikash/oracle/rdna3-wmma-latest/mmq-primary/manifest.json": { + "bytes": 260803, + "sha256": "37262843d79e4d38fbb84513cbf9323a307bf970b46099d39ae04fd0118dbf81" + }, + "/home/vikash/oracle/rdna3-wmma-latest/mmq-native/report.json": { + "bytes": 32689, + "sha256": "ef12cb966bfec0f4224d73dcab609b9d9f509e14287c8d2ec8768c385d5eba11" + }, + "/home/vikash/oracle/rdna3-wmma-latest/mmq-native/comparison.json": { + "bytes": 59993, + "sha256": "5588ba567595a156283bb426b29477f212b84923dec26b2226f4326d2dc50518" + } + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/build-targets.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/build-targets.json new file mode 100644 index 000000000..f5bf54615 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/build-targets.json @@ -0,0 +1,27 @@ +[ + "rocm_quant_wmma_capture", + "test_backend_cross_device", + "test_capi_rocm_embedding_quant", + "test_capi_rocm_quant_wmma", + "test_exl3_rocm", + "test_gemma4_rocm_fp8_seams", + "test_ops_rocm_silu_rounding", + "test_qwen35_moe_kq_device", + "test_qwen4_exp_rocm_reductions", + "test_rocm_arch", + "test_rocm_attn_gate_split", + "test_rocm_backend", + "test_rocm_embedding_quant", + "test_rocm_f16_contract", + "test_rocm_f16_device", + "test_rocm_f16_model", + "test_rocm_f16_weights", + "test_rocm_fp8_kv_cache", + "test_rocm_moe_bf16", + "test_rocm_moe_grouped_bf16", + "test_rocm_moe_reference_set", + "test_rocm_moe_upstream", + "test_rocm_norm_quant_bridge", + "test_rocm_pinned_h2d", + "test_rocm_quant_dot" +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/compiler.txt b/docs/bench-evidence/rocm-rdna3-quant-wmma/compiler.txt new file mode 100644 index 000000000..e3c5fca53 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/compiler.txt @@ -0,0 +1,4 @@ +AMD clang version 23.0.0git (https://github.com/ROCm/llvm-project.git 8f497e0992fb7513f7f78a6f6b6f1056c375e961) +Target: x86_64-unknown-linux-gnu +Thread model: posix +InstalledDir: /opt/rocm/core-10.0/lib/llvm/bin diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutation-recipe.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutation-recipe.py new file mode 100644 index 000000000..bd12fe4cc --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutation-recipe.py @@ -0,0 +1,28 @@ +import hashlib,json,subprocess +from pathlib import Path +root=Path('/home/vikash/vllm.cpp-rdna3-wmma-impl') +base=root/'build-rdna3-wmma/mutation-arch' +base.mkdir(exist_ok=True) +paths=['include/vt/rocm/rocm_quant_wmma_arch.h','include/vt/rocm/rocm_arch.h'] +hashes={p:hashlib.sha256((root/p).read_bytes()).hexdigest() for p in paths} +results=[] +for name in ('reject-gfx1100','admit-gfx1101','accept-malformed-features','widen-attention'): + directory=base/name + inc=directory/'vt/rocm' + inc.mkdir(parents=True,exist_ok=True) + header='rocm_arch.h' if name=='widen-attention' else 'rocm_quant_wmma_arch.h' + text=(root/'include/vt/rocm'/header).read_text() + if name=='reject-gfx1100': text=text.replace('stem != "gfx1100" && ','') + elif name=='admit-gfx1101': text=text.replace('stem != "gfx1100" && ','stem != "gfx1100" && stem != "gfx1101" && ') + elif name=='accept-malformed-features': text=text.replace('if (colon == std::string_view::npos) return true;','return true;') + else: text=text.replace('return prefix_ok(gcn_arch, "gfx1200")','return gcn_arch == "gfx1100" || prefix_ok(gcn_arch, "gfx1200")') + (inc/header).write_text(text) + binary=directory/'arch' + command=['c++','-std=c++20','-I'+str(directory),'-I'+str(root/'include'),'-I'+str(root/'third_party'),str(root/'tests/vt/test_rocm_arch.cpp'),str(root/'tests/doctest_main.cpp'),'-o',str(binary)] + with (directory/'build.log').open('w') as log: subprocess.run(command,check=True,stdout=log,stderr=subprocess.STDOUT) + with (directory/'result.log').open('w') as log: status=subprocess.call([str(binary),'--test-case=*WMMA*'],stdout=log,stderr=subprocess.STDOUT) + restored={p:hashlib.sha256((root/p).read_bytes()).hexdigest()==h for p,h in hashes.items()} + results.append({'mutation':name,'exit':status,'command':command,'original_hashes':hashes,'restored':restored}) + (base/'report.json').write_text(json.dumps(results,indent=2)+'\n') + print(name,status,flush=True) + assert status==1 and all(restored.values()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-accept-malformed-features.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-accept-malformed-features.log new file mode 100644 index 000000000..6243008a9 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-accept-malformed-features.log @@ -0,0 +1,38 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100: + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:xnack + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:foo+ + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:xnack-: + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100::xnack- + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:xnack-:xnack+ + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1200:sramecc+:sramecc+ + +=============================================================================== +[doctest] test cases: 2 | 1 passed | 1 failed | 14 skipped +[doctest] assertions: 44 | 37 passed | 7 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-admit-gfx1101.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-admit-gfx1101.log new file mode 100644 index 000000000..3a680aaf9 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-admit-gfx1101.log @@ -0,0 +1,14 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1101 + +=============================================================================== +[doctest] test cases: 2 | 1 passed | 1 failed | 14 skipped +[doctest] assertions: 44 | 43 passed | 1 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-reject-gfx1100.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-reject-gfx1100.log new file mode 100644 index 000000000..1c3f6e59e --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-reject-gfx1100.log @@ -0,0 +1,22 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100 + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100:xnack- + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100:sramecc+:xnack- + +=============================================================================== +[doctest] test cases: 2 | 1 passed | 1 failed | 14 skipped +[doctest] assertions: 44 | 41 passed | 3 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-widen-attention.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-widen-attention.log new file mode 100644 index 000000000..24d8cc627 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations-widen-attention.log @@ -0,0 +1,20 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:94: +TEST CASE: SharedK WMMA host gate is gfx1200/gfx1201 prefix, not substring + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:102: ERROR: CHECK_FALSE( GcnArchNameIsGfx12PrefillWmma("gfx1100") ) is NOT correct! + values: CHECK_FALSE( true ) + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp:131: ERROR: CHECK_FALSE( vt::rocm::GcnArchNameIsGfx12PrefillWmma("gfx1100") ) is NOT correct! + values: CHECK_FALSE( true ) + +=============================================================================== +[doctest] test cases: 2 | 0 passed | 2 failed | 14 skipped +[doctest] assertions: 44 | 42 passed | 2 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations.json new file mode 100644 index 000000000..126c1cd05 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/cpu-mutations.json @@ -0,0 +1,98 @@ +[ + { + "mutation": "reject-gfx1100", + "exit": 1, + "command": [ + "c++", + "-std=c++20", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/reject-gfx1100", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/third_party", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/doctest_main.cpp", + "-o", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/reject-gfx1100/arch" + ], + "original_hashes": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + }, + "restored": { + "include/vt/rocm/rocm_quant_wmma_arch.h": true, + "include/vt/rocm/rocm_arch.h": true + }, + "tracked_log": "cpu-mutations-reject-gfx1100.log" + }, + { + "mutation": "admit-gfx1101", + "exit": 1, + "command": [ + "c++", + "-std=c++20", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/admit-gfx1101", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/third_party", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/doctest_main.cpp", + "-o", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/admit-gfx1101/arch" + ], + "original_hashes": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + }, + "restored": { + "include/vt/rocm/rocm_quant_wmma_arch.h": true, + "include/vt/rocm/rocm_arch.h": true + }, + "tracked_log": "cpu-mutations-admit-gfx1101.log" + }, + { + "mutation": "accept-malformed-features", + "exit": 1, + "command": [ + "c++", + "-std=c++20", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/accept-malformed-features", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/third_party", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/doctest_main.cpp", + "-o", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/accept-malformed-features/arch" + ], + "original_hashes": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + }, + "restored": { + "include/vt/rocm/rocm_quant_wmma_arch.h": true, + "include/vt/rocm/rocm_arch.h": true + }, + "tracked_log": "cpu-mutations-accept-malformed-features.log" + }, + { + "mutation": "widen-attention", + "exit": 1, + "command": [ + "c++", + "-std=c++20", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/widen-attention", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-impl/third_party", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_rocm_arch.cpp", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/doctest_main.cpp", + "-o", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-arch/widen-attention/arch" + ], + "original_hashes": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + }, + "restored": { + "include/vt/rocm/rocm_quant_wmma_arch.h": true, + "include/vt/rocm/rocm_arch.h": true + }, + "tracked_log": "cpu-mutations-widen-attention.log" + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/gfx1100-wmma-isa.txt b/docs/bench-evidence/rocm-rdna3-quant-wmma/gfx1100-wmma-isa.txt new file mode 100644 index 000000000..2015fa061 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/gfx1100-wmma-isa.txt @@ -0,0 +1,16 @@ +0000000000026f00 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ6KIfEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[158:165], v[166:169], v[170:173], v[150:157] neg_lo:[1,1,0] clamp// 000000028644: CC44C09E 7E5B55A6 +0000000000026f00 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ6KIfEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[166:173], v[174:177], v[178:181], v[150:157] neg_lo:[1,1,0] clamp// 000000028650: CC44C0A6 7E5B65AE +000000000002a800 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ4KIfEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[80:87], v[54:57], v[104:107], v[44:51] neg_lo:[1,1,0] clamp// 00000002CE1C: CC44C050 7CB2D136 +000000000002a800 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ4KIfEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[80:87], v[104:107], v[52:55], v[44:51] neg_lo:[1,1,0] clamp// 00000002CF0C: CC44C050 7CB26968 +0000000000033600 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ6KItEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[158:165], v[166:169], v[170:173], v[150:157] neg_lo:[1,1,0] clamp// 000000034D48: CC44C09E 7E5B55A6 +0000000000033600 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ6KItEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[166:173], v[174:177], v[178:181], v[150:157] neg_lo:[1,1,0] clamp// 000000034D54: CC44C0A6 7E5B65AE +0000000000037200 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ4KItEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[80:87], v[54:57], v[108:111], v[41:48] neg_lo:[1,1,0] clamp// 0000000397AC: CC44C050 7CA6D936 +0000000000037200 <_ZN2vt4rocm12_GLOBAL__N_118KQuantGemmKWmmaQ4KItEEvPT_PKhPKNS_3cpu9BlockQ8_KEllll>: + v_wmma_i32_16x16x16_iu8 v[80:87], v[54:57], v[106:109], v[41:48] neg_lo:[1,1,0] clamp// 0000000398A4: CC44C050 7CA6D536 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-green.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-green.log new file mode 100644 index 000000000..d749c9e2c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-green.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 4 | 4 passed | 0 failed | 57 skipped +[doctest] assertions: 46 | 46 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-red.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-red.log new file mode 100644 index 000000000..69c898645 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-red.log @@ -0,0 +1,66 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3687: +TEST CASE: keep-quant Q6_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3776: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3776: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3786: +TEST CASE: keep-quant Q4_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3870: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3870: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3883: +TEST CASE: keep-quant GEMM matches the CPU oracle when M and N are not multiples of 16 + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3974: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3974: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(f.name) := q4_K + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:3993: +TEST CASE: keep-quant GEMM matches the CPU oracle when only one of M/N is misaligned + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q4_K + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-impl/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q4_K + +=============================================================================== +[doctest] test cases: 4 | 0 passed | 4 failed | 57 skipped +[doctest] assertions: 46 | 36 passed | 10 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-scalar.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-scalar.log new file mode 100644 index 000000000..d749c9e2c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/hardware-scalar.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 4 | 4 passed | 0 failed | 57 skipped +[doctest] assertions: 46 | 46 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-green.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-green.log new file mode 100644 index 000000000..61dc5007d --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-green.log @@ -0,0 +1,71 @@ +Internal ctest changing into directory: /home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma +Test project /home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma + Start 111: test_rocm_moe_bf16 + 1/29 Test #111: test_rocm_moe_bf16 ..............................***Skipped 0.33 sec + Start 512: test_backend_cross_device + 2/29 Test #512: test_backend_cross_device ....................... Passed 19.56 sec + Start 513: test_backend_cross_device_vt_attn_decode_d128 + 3/29 Test #513: test_backend_cross_device_vt_attn_decode_d128 ... Passed 0.44 sec + Start 514: test_rocm_arch + 4/29 Test #514: test_rocm_arch .................................. Passed 0.19 sec + Start 515: test_rocm_pinned_h2d + 5/29 Test #515: test_rocm_pinned_h2d ............................ Passed 0.19 sec + Start 516: test_rocm_f16_contract + 6/29 Test #516: test_rocm_f16_contract .......................... Passed 0.20 sec + Start 518: test_rocm_norm_quant_bridge + 7/29 Test #518: test_rocm_norm_quant_bridge ..................... Passed 0.20 sec + Start 519: test_rocm_quant_dot + 8/29 Test #519: test_rocm_quant_dot ............................. Passed 4.52 sec + Start 524: test_rocm_backend + 9/29 Test #524: test_rocm_backend ............................... Passed 0.79 sec + Start 525: test_rocm_attn_gate_split +10/29 Test #525: test_rocm_attn_gate_split ....................... Passed 0.73 sec + Start 526: test_rocm_attn_gate_split_device_binding +11/29 Test #526: test_rocm_attn_gate_split_device_binding ........***Skipped 0.19 sec + Start 527: test_rocm_attn_gate_split_large_index +12/29 Test #527: test_rocm_attn_gate_split_large_index ........... Passed 0.37 sec + Start 528: test_rocm_f16_weights +13/29 Test #528: test_rocm_f16_weights ........................... Passed 1.43 sec + Start 529: test_rocm_f16_graph_dedup +14/29 Test #529: test_rocm_f16_graph_dedup ....................... Passed 0.73 sec + Start 530: test_rocm_f16_device +15/29 Test #530: test_rocm_f16_device ............................***Skipped 0.19 sec + Start 531: test_rocm_f16_model +16/29 Test #531: test_rocm_f16_model .............................***Skipped 0.20 sec + Start 532: test_rocm_fp8_kv_cache +17/29 Test #532: test_rocm_fp8_kv_cache .......................... Passed 0.46 sec + Start 533: test_ops_rocm_silu_rounding +18/29 Test #533: test_ops_rocm_silu_rounding ..................... Passed 0.36 sec + Start 554: test_exl3_rocm +19/29 Test #554: test_exl3_rocm .................................. Passed 0.48 sec + Start 567: test_capi_rocm_embedding_quant +20/29 Test #567: test_capi_rocm_embedding_quant .................. Passed 11.29 sec + Start 568: test_capi_rocm_quant_wmma +21/29 Test #568: test_capi_rocm_quant_wmma ....................... Passed 1.51 sec + Start 569: test_rocm_embedding_quant +22/29 Test #569: test_rocm_embedding_quant ....................... Passed 10.78 sec + Start 616: test_rocm_moe_grouped_bf16 +23/29 Test #616: test_rocm_moe_grouped_bf16 ...................... Passed 0.85 sec + Start 617: test_rocm_moe_upstream +24/29 Test #617: test_rocm_moe_upstream ..........................***Skipped 0.19 sec + Start 619: test_rocm_moe_reference_set +25/29 Test #619: test_rocm_moe_reference_set ..................... Passed 0.20 sec + Start 678: test_rocm_sample_scratch +26/29 Test #678: test_rocm_sample_scratch ........................ Passed 0.49 sec + Start 679: test_gemma4_rocm_fp8_seams +27/29 Test #679: test_gemma4_rocm_fp8_seams ...................... Passed 0.20 sec + Start 754: test_rocm_qwen35_moe_kq_device +28/29 Test #754: test_rocm_qwen35_moe_kq_device .................. Passed 1.04 sec + Start 760: test_qwen4_exp_rocm_reductions +29/29 Test #760: test_qwen4_exp_rocm_reductions .................. Passed 1.96 sec + +100% tests passed, 0 tests failed out of 29 + +Total Test time (real) = 60.10 sec + +The following tests did not run: + 111 - test_rocm_moe_bf16 (Skipped) + 526 - test_rocm_attn_gate_split_device_binding (Skipped) + 530 - test_rocm_f16_device (Skipped) + 531 - test_rocm_f16_model (Skipped) + 617 - test_rocm_moe_upstream (Skipped) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-missing-alias.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-missing-alias.log new file mode 100644 index 000000000..7a4959edd --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/hip-gate-missing-alias.log @@ -0,0 +1,106 @@ +Internal ctest changing into directory: /home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma +Test project /home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma + Start 111: test_rocm_moe_bf16 + 1/29 Test #111: test_rocm_moe_bf16 ..............................***Skipped 0.32 sec + Start 512: test_backend_cross_device + 2/29 Test #512: test_backend_cross_device ....................... Passed 17.37 sec + Start 513: test_backend_cross_device_vt_attn_decode_d128 + 3/29 Test #513: test_backend_cross_device_vt_attn_decode_d128 ... Passed 0.40 sec + Start 514: test_rocm_arch + 4/29 Test #514: test_rocm_arch .................................. Passed 0.19 sec + Start 515: test_rocm_pinned_h2d + 5/29 Test #515: test_rocm_pinned_h2d ............................ Passed 0.18 sec + Start 516: test_rocm_f16_contract + 6/29 Test #516: test_rocm_f16_contract .......................... Passed 0.19 sec + Start 518: test_rocm_norm_quant_bridge + 7/29 Test #518: test_rocm_norm_quant_bridge ..................... Passed 0.19 sec + Start 519: test_rocm_quant_dot + 8/29 Test #519: test_rocm_quant_dot ............................. Passed 4.09 sec + Start 524: test_rocm_backend + 9/29 Test #524: test_rocm_backend ............................... Passed 0.74 sec + Start 525: test_rocm_attn_gate_split +10/29 Test #525: test_rocm_attn_gate_split ....................... Passed 0.68 sec + Start 526: test_rocm_attn_gate_split_device_binding +11/29 Test #526: test_rocm_attn_gate_split_device_binding ........***Skipped 0.19 sec + Start 527: test_rocm_attn_gate_split_large_index +12/29 Test #527: test_rocm_attn_gate_split_large_index ........... Passed 0.37 sec + Start 528: test_rocm_f16_weights +13/29 Test #528: test_rocm_f16_weights ........................... Passed 1.38 sec + Start 529: test_rocm_f16_graph_dedup +14/29 Test #529: test_rocm_f16_graph_dedup ....................... Passed 0.70 sec + Start 530: test_rocm_f16_device +15/29 Test #530: test_rocm_f16_device ............................***Skipped 0.18 sec + Start 531: test_rocm_f16_model +16/29 Test #531: test_rocm_f16_model .............................***Skipped 0.18 sec + Start 532: test_rocm_fp8_kv_cache +17/29 Test #532: test_rocm_fp8_kv_cache .......................... Passed 0.43 sec + Start 533: test_ops_rocm_silu_rounding +18/29 Test #533: test_ops_rocm_silu_rounding ..................... Passed 0.32 sec + Start 554: test_exl3_rocm +19/29 Test #554: test_exl3_rocm .................................. Passed 0.44 sec + Start 567: test_capi_rocm_embedding_quant +20/29 Test #567: test_capi_rocm_embedding_quant .................. Passed 10.85 sec + Start 568: test_capi_rocm_quant_wmma +21/29 Test #568: test_capi_rocm_quant_wmma ....................... Passed 1.46 sec + Start 569: test_rocm_embedding_quant +22/29 Test #569: test_rocm_embedding_quant ....................... Passed 9.75 sec + Start 616: test_rocm_moe_grouped_bf16 +23/29 Test #616: test_rocm_moe_grouped_bf16 ...................... Passed 0.83 sec + Start 617: test_rocm_moe_upstream +24/29 Test #617: test_rocm_moe_upstream ..........................***Skipped 0.18 sec + Start 619: test_rocm_moe_reference_set +25/29 Test #619: test_rocm_moe_reference_set ..................... Passed 0.19 sec + Start 678: test_rocm_sample_scratch +26/29 Test #678: test_rocm_sample_scratch ........................ Passed 0.48 sec + Start 679: test_gemma4_rocm_fp8_seams +27/29 Test #679: test_gemma4_rocm_fp8_seams ...................... Passed 0.19 sec + Start 754: test_rocm_qwen35_moe_kq_device +Could not find executable /home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_qwen35_moe_kq_device +Looked in the following places: +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Release/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Release/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Debug/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Debug/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/MinSizeRel/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/MinSizeRel/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/RelWithDebInfo/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/RelWithDebInfo/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Deployment/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Deployment/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Development/test_qwen35_moe_kq_device +/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Development/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Release/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Release/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Debug/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Debug/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/MinSizeRel/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/MinSizeRel/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/RelWithDebInfo/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/RelWithDebInfo/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Deployment/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Deployment/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Development/test_qwen35_moe_kq_device +home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/Development/test_qwen35_moe_kq_device +Unable to find executable: /home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_qwen35_moe_kq_device +28/29 Test #754: test_rocm_qwen35_moe_kq_device ..................***Not Run 0.00 sec + Start 760: test_qwen4_exp_rocm_reductions +29/29 Test #760: test_qwen4_exp_rocm_reductions .................. Passed 1.94 sec + +97% tests passed, 1 tests failed out of 29 + +Total Test time (real) = 54.44 sec + +The following tests did not run: + 111 - test_rocm_moe_bf16 (Skipped) + 526 - test_rocm_attn_gate_split_device_binding (Skipped) + 530 - test_rocm_f16_device (Skipped) + 531 - test_rocm_f16_model (Skipped) + 617 - test_rocm_moe_upstream (Skipped) + +The following tests FAILED: + 754 - test_rocm_qwen35_moe_kq_device (Not Run) +Errors while running CTest diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/native-comparison.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/native-comparison.log new file mode 100644 index 000000000..635aa7949 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/native-comparison.log @@ -0,0 +1,240 @@ +NATIVE PARITY Q4_K-256-0-f16-7 PASS +NATIVE PARITY Q4_K-256-1-f16-7 PASS +NATIVE PARITY Q4_K-256-2-f16-7 PASS +NATIVE PARITY Q4_K-256-3-f16-7 PASS +NATIVE PARITY Q4_K-256-4-f16-7 PASS +NATIVE PARITY Q4_K-256-0-f16-83 PASS +NATIVE PARITY Q4_K-256-1-f16-83 PASS +NATIVE PARITY Q4_K-256-2-f16-83 PASS +NATIVE PARITY Q4_K-256-3-f16-83 PASS +NATIVE PARITY Q4_K-256-4-f16-83 PASS +NATIVE PARITY Q4_K-256-0-f16-128 PASS +NATIVE PARITY Q4_K-256-1-f16-128 PASS +NATIVE PARITY Q4_K-256-2-f16-128 PASS +NATIVE PARITY Q4_K-256-3-f16-128 PASS +NATIVE PARITY Q4_K-256-4-f16-128 PASS +NATIVE PARITY Q4_K-256-0-f16-2048 PASS +NATIVE PARITY Q4_K-256-1-f16-2048 PASS +NATIVE PARITY Q4_K-256-2-f16-2048 PASS +NATIVE PARITY Q4_K-256-3-f16-2048 PASS +NATIVE PARITY Q4_K-256-4-f16-2048 PASS +NATIVE PARITY Q4_K-256-0-bf16-7 PASS +NATIVE PARITY Q4_K-256-1-bf16-7 PASS +NATIVE PARITY Q4_K-256-2-bf16-7 PASS +NATIVE PARITY Q4_K-256-3-bf16-7 PASS +NATIVE PARITY Q4_K-256-4-bf16-7 PASS +NATIVE PARITY Q4_K-256-0-bf16-83 PASS +NATIVE PARITY Q4_K-256-1-bf16-83 PASS +NATIVE PARITY Q4_K-256-2-bf16-83 PASS +NATIVE PARITY Q4_K-256-3-bf16-83 PASS +NATIVE PARITY Q4_K-256-4-bf16-83 PASS +NATIVE PARITY Q4_K-256-0-bf16-128 PASS +NATIVE PARITY Q4_K-256-1-bf16-128 PASS +NATIVE PARITY Q4_K-256-2-bf16-128 PASS +NATIVE PARITY Q4_K-256-3-bf16-128 PASS +NATIVE PARITY Q4_K-256-4-bf16-128 PASS +NATIVE PARITY Q4_K-256-0-bf16-2048 PASS +NATIVE PARITY Q4_K-256-1-bf16-2048 PASS +NATIVE PARITY Q4_K-256-2-bf16-2048 PASS +NATIVE PARITY Q4_K-256-3-bf16-2048 PASS +NATIVE PARITY Q4_K-256-4-bf16-2048 PASS +NATIVE PARITY Q4_K-256-0-f32-7 PASS +NATIVE PARITY Q4_K-256-1-f32-7 PASS +NATIVE PARITY Q4_K-256-2-f32-7 PASS +NATIVE PARITY Q4_K-256-3-f32-7 PASS +NATIVE PARITY Q4_K-256-4-f32-7 PASS +NATIVE PARITY Q4_K-256-0-f32-83 PASS +NATIVE PARITY Q4_K-256-1-f32-83 PASS +NATIVE PARITY Q4_K-256-2-f32-83 PASS +NATIVE PARITY Q4_K-256-3-f32-83 PASS +NATIVE PARITY Q4_K-256-4-f32-83 PASS +NATIVE PARITY Q4_K-256-0-f32-128 PASS +NATIVE PARITY Q4_K-256-1-f32-128 PASS +NATIVE PARITY Q4_K-256-2-f32-128 PASS +NATIVE PARITY Q4_K-256-3-f32-128 PASS +NATIVE PARITY Q4_K-256-4-f32-128 PASS +NATIVE PARITY Q4_K-256-0-f32-2048 PASS +NATIVE PARITY Q4_K-256-1-f32-2048 PASS +NATIVE PARITY Q4_K-256-2-f32-2048 PASS +NATIVE PARITY Q4_K-256-3-f32-2048 PASS +NATIVE PARITY Q4_K-256-4-f32-2048 PASS +NATIVE PARITY Q4_K-1024-0-f16-7 PASS +NATIVE PARITY Q4_K-1024-1-f16-7 PASS +NATIVE PARITY Q4_K-1024-2-f16-7 PASS +NATIVE PARITY Q4_K-1024-3-f16-7 PASS +NATIVE PARITY Q4_K-1024-4-f16-7 PASS +NATIVE PARITY Q4_K-1024-0-f16-83 PASS +NATIVE PARITY Q4_K-1024-1-f16-83 PASS +NATIVE PARITY Q4_K-1024-2-f16-83 PASS +NATIVE PARITY Q4_K-1024-3-f16-83 PASS +NATIVE PARITY Q4_K-1024-4-f16-83 PASS +NATIVE PARITY Q4_K-1024-0-f16-128 PASS +NATIVE PARITY Q4_K-1024-1-f16-128 PASS +NATIVE PARITY Q4_K-1024-2-f16-128 PASS +NATIVE PARITY Q4_K-1024-3-f16-128 PASS +NATIVE PARITY Q4_K-1024-4-f16-128 PASS +NATIVE PARITY Q4_K-1024-0-f16-2048 PASS +NATIVE PARITY Q4_K-1024-1-f16-2048 PASS +NATIVE PARITY Q4_K-1024-2-f16-2048 PASS +NATIVE PARITY Q4_K-1024-3-f16-2048 PASS +NATIVE PARITY Q4_K-1024-4-f16-2048 PASS +NATIVE PARITY Q4_K-1024-0-bf16-7 PASS +NATIVE PARITY Q4_K-1024-1-bf16-7 PASS +NATIVE PARITY Q4_K-1024-2-bf16-7 PASS +NATIVE PARITY Q4_K-1024-3-bf16-7 PASS +NATIVE PARITY Q4_K-1024-4-bf16-7 PASS +NATIVE PARITY Q4_K-1024-0-bf16-83 PASS +NATIVE PARITY Q4_K-1024-1-bf16-83 PASS +NATIVE PARITY Q4_K-1024-2-bf16-83 PASS +NATIVE PARITY Q4_K-1024-3-bf16-83 PASS +NATIVE PARITY Q4_K-1024-4-bf16-83 PASS +NATIVE PARITY Q4_K-1024-0-bf16-128 PASS +NATIVE PARITY Q4_K-1024-1-bf16-128 PASS +NATIVE PARITY Q4_K-1024-2-bf16-128 PASS +NATIVE PARITY Q4_K-1024-3-bf16-128 PASS +NATIVE PARITY Q4_K-1024-4-bf16-128 PASS +NATIVE PARITY Q4_K-1024-0-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-1-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-2-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-3-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-4-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-0-f32-7 PASS +NATIVE PARITY Q4_K-1024-1-f32-7 PASS +NATIVE PARITY Q4_K-1024-2-f32-7 PASS +NATIVE PARITY Q4_K-1024-3-f32-7 PASS +NATIVE PARITY Q4_K-1024-4-f32-7 PASS +NATIVE PARITY Q4_K-1024-0-f32-83 PASS +NATIVE PARITY Q4_K-1024-1-f32-83 PASS +NATIVE PARITY Q4_K-1024-2-f32-83 PASS +NATIVE PARITY Q4_K-1024-3-f32-83 PASS +NATIVE PARITY Q4_K-1024-4-f32-83 PASS +NATIVE PARITY Q4_K-1024-0-f32-128 PASS +NATIVE PARITY Q4_K-1024-1-f32-128 PASS +NATIVE PARITY Q4_K-1024-2-f32-128 PASS +NATIVE PARITY Q4_K-1024-3-f32-128 PASS +NATIVE PARITY Q4_K-1024-4-f32-128 PASS +NATIVE PARITY Q4_K-1024-0-f32-2048 PASS +NATIVE PARITY Q4_K-1024-1-f32-2048 PASS +NATIVE PARITY Q4_K-1024-2-f32-2048 PASS +NATIVE PARITY Q4_K-1024-3-f32-2048 PASS +NATIVE PARITY Q4_K-1024-4-f32-2048 PASS +NATIVE PARITY Q6_K-256-0-f16-7 PASS +NATIVE PARITY Q6_K-256-1-f16-7 PASS +NATIVE PARITY Q6_K-256-2-f16-7 PASS +NATIVE PARITY Q6_K-256-3-f16-7 PASS +NATIVE PARITY Q6_K-256-4-f16-7 PASS +NATIVE PARITY Q6_K-256-0-f16-83 PASS +NATIVE PARITY Q6_K-256-1-f16-83 PASS +NATIVE PARITY Q6_K-256-2-f16-83 PASS +NATIVE PARITY Q6_K-256-3-f16-83 PASS +NATIVE PARITY Q6_K-256-4-f16-83 PASS +NATIVE PARITY Q6_K-256-0-f16-128 PASS +NATIVE PARITY Q6_K-256-1-f16-128 PASS +NATIVE PARITY Q6_K-256-2-f16-128 PASS +NATIVE PARITY Q6_K-256-3-f16-128 PASS +NATIVE PARITY Q6_K-256-4-f16-128 PASS +NATIVE PARITY Q6_K-256-0-f16-2048 PASS +NATIVE PARITY Q6_K-256-1-f16-2048 PASS +NATIVE PARITY Q6_K-256-2-f16-2048 PASS +NATIVE PARITY Q6_K-256-3-f16-2048 PASS +NATIVE PARITY Q6_K-256-4-f16-2048 PASS +NATIVE PARITY Q6_K-256-0-bf16-7 PASS +NATIVE PARITY Q6_K-256-1-bf16-7 PASS +NATIVE PARITY Q6_K-256-2-bf16-7 PASS +NATIVE PARITY Q6_K-256-3-bf16-7 PASS +NATIVE PARITY Q6_K-256-4-bf16-7 PASS +NATIVE PARITY Q6_K-256-0-bf16-83 PASS +NATIVE PARITY Q6_K-256-1-bf16-83 PASS +NATIVE PARITY Q6_K-256-2-bf16-83 PASS +NATIVE PARITY Q6_K-256-3-bf16-83 PASS +NATIVE PARITY Q6_K-256-4-bf16-83 PASS +NATIVE PARITY Q6_K-256-0-bf16-128 PASS +NATIVE PARITY Q6_K-256-1-bf16-128 PASS +NATIVE PARITY Q6_K-256-2-bf16-128 PASS +NATIVE PARITY Q6_K-256-3-bf16-128 PASS +NATIVE PARITY Q6_K-256-4-bf16-128 PASS +NATIVE PARITY Q6_K-256-0-bf16-2048 PASS +NATIVE PARITY Q6_K-256-1-bf16-2048 PASS +NATIVE PARITY Q6_K-256-2-bf16-2048 PASS +NATIVE PARITY Q6_K-256-3-bf16-2048 PASS +NATIVE PARITY Q6_K-256-4-bf16-2048 PASS +NATIVE PARITY Q6_K-256-0-f32-7 PASS +NATIVE PARITY Q6_K-256-1-f32-7 PASS +NATIVE PARITY Q6_K-256-2-f32-7 PASS +NATIVE PARITY Q6_K-256-3-f32-7 PASS +NATIVE PARITY Q6_K-256-4-f32-7 PASS +NATIVE PARITY Q6_K-256-0-f32-83 PASS +NATIVE PARITY Q6_K-256-1-f32-83 PASS +NATIVE PARITY Q6_K-256-2-f32-83 PASS +NATIVE PARITY Q6_K-256-3-f32-83 PASS +NATIVE PARITY Q6_K-256-4-f32-83 PASS +NATIVE PARITY Q6_K-256-0-f32-128 PASS +NATIVE PARITY Q6_K-256-1-f32-128 PASS +NATIVE PARITY Q6_K-256-2-f32-128 PASS +NATIVE PARITY Q6_K-256-3-f32-128 PASS +NATIVE PARITY Q6_K-256-4-f32-128 PASS +NATIVE PARITY Q6_K-256-0-f32-2048 PASS +NATIVE PARITY Q6_K-256-1-f32-2048 PASS +NATIVE PARITY Q6_K-256-2-f32-2048 PASS +NATIVE PARITY Q6_K-256-3-f32-2048 PASS +NATIVE PARITY Q6_K-256-4-f32-2048 PASS +NATIVE PARITY Q6_K-1024-0-f16-7 PASS +NATIVE PARITY Q6_K-1024-1-f16-7 PASS +NATIVE PARITY Q6_K-1024-2-f16-7 PASS +NATIVE PARITY Q6_K-1024-3-f16-7 PASS +NATIVE PARITY Q6_K-1024-4-f16-7 PASS +NATIVE PARITY Q6_K-1024-0-f16-83 PASS +NATIVE PARITY Q6_K-1024-1-f16-83 PASS +NATIVE PARITY Q6_K-1024-2-f16-83 PASS +NATIVE PARITY Q6_K-1024-3-f16-83 PASS +NATIVE PARITY Q6_K-1024-4-f16-83 PASS +NATIVE PARITY Q6_K-1024-0-f16-128 PASS +NATIVE PARITY Q6_K-1024-1-f16-128 PASS +NATIVE PARITY Q6_K-1024-2-f16-128 PASS +NATIVE PARITY Q6_K-1024-3-f16-128 PASS +NATIVE PARITY Q6_K-1024-4-f16-128 PASS +NATIVE PARITY Q6_K-1024-0-f16-2048 PASS +NATIVE PARITY Q6_K-1024-1-f16-2048 PASS +NATIVE PARITY Q6_K-1024-2-f16-2048 PASS +NATIVE PARITY Q6_K-1024-3-f16-2048 PASS +NATIVE PARITY Q6_K-1024-4-f16-2048 PASS +NATIVE PARITY Q6_K-1024-0-bf16-7 PASS +NATIVE PARITY Q6_K-1024-1-bf16-7 PASS +NATIVE PARITY Q6_K-1024-2-bf16-7 PASS +NATIVE PARITY Q6_K-1024-3-bf16-7 PASS +NATIVE PARITY Q6_K-1024-4-bf16-7 PASS +NATIVE PARITY Q6_K-1024-0-bf16-83 PASS +NATIVE PARITY Q6_K-1024-1-bf16-83 PASS +NATIVE PARITY Q6_K-1024-2-bf16-83 PASS +NATIVE PARITY Q6_K-1024-3-bf16-83 PASS +NATIVE PARITY Q6_K-1024-4-bf16-83 PASS +NATIVE PARITY Q6_K-1024-0-bf16-128 PASS +NATIVE PARITY Q6_K-1024-1-bf16-128 PASS +NATIVE PARITY Q6_K-1024-2-bf16-128 PASS +NATIVE PARITY Q6_K-1024-3-bf16-128 PASS +NATIVE PARITY Q6_K-1024-4-bf16-128 PASS +NATIVE PARITY Q6_K-1024-0-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-1-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-2-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-3-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-4-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-0-f32-7 PASS +NATIVE PARITY Q6_K-1024-1-f32-7 PASS +NATIVE PARITY Q6_K-1024-2-f32-7 PASS +NATIVE PARITY Q6_K-1024-3-f32-7 PASS +NATIVE PARITY Q6_K-1024-4-f32-7 PASS +NATIVE PARITY Q6_K-1024-0-f32-83 PASS +NATIVE PARITY Q6_K-1024-1-f32-83 PASS +NATIVE PARITY Q6_K-1024-2-f32-83 PASS +NATIVE PARITY Q6_K-1024-3-f32-83 PASS +NATIVE PARITY Q6_K-1024-4-f32-83 PASS +NATIVE PARITY Q6_K-1024-0-f32-128 PASS +NATIVE PARITY Q6_K-1024-1-f32-128 PASS +NATIVE PARITY Q6_K-1024-2-f32-128 PASS +NATIVE PARITY Q6_K-1024-3-f32-128 PASS +NATIVE PARITY Q6_K-1024-4-f32-128 PASS +NATIVE PARITY Q6_K-1024-0-f32-2048 PASS +NATIVE PARITY Q6_K-1024-1-f32-2048 PASS +NATIVE PARITY Q6_K-1024-2-f32-2048 PASS +NATIVE PARITY Q6_K-1024-3-f32-2048 PASS +NATIVE PARITY Q6_K-1024-4-f32-2048 PASS diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/native-mmq.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/native-mmq.log new file mode 100644 index 000000000..9b04e8a54 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/native-mmq.log @@ -0,0 +1,240 @@ +NATIVE Q4_K-256-0-f16-7 wmmas=0 +NATIVE Q4_K-256-1-f16-7 wmmas=0 +NATIVE Q4_K-256-2-f16-7 wmmas=0 +NATIVE Q4_K-256-3-f16-7 wmmas=0 +NATIVE Q4_K-256-4-f16-7 wmmas=0 +NATIVE Q4_K-256-0-f16-83 wmmas=1 +NATIVE Q4_K-256-1-f16-83 wmmas=1 +NATIVE Q4_K-256-2-f16-83 wmmas=1 +NATIVE Q4_K-256-3-f16-83 wmmas=1 +NATIVE Q4_K-256-4-f16-83 wmmas=1 +NATIVE Q4_K-256-0-f16-128 wmmas=1 +NATIVE Q4_K-256-1-f16-128 wmmas=1 +NATIVE Q4_K-256-2-f16-128 wmmas=1 +NATIVE Q4_K-256-3-f16-128 wmmas=1 +NATIVE Q4_K-256-4-f16-128 wmmas=1 +NATIVE Q4_K-256-0-f16-2048 wmmas=1 +NATIVE Q4_K-256-1-f16-2048 wmmas=1 +NATIVE Q4_K-256-2-f16-2048 wmmas=1 +NATIVE Q4_K-256-3-f16-2048 wmmas=1 +NATIVE Q4_K-256-4-f16-2048 wmmas=1 +NATIVE Q4_K-256-0-bf16-7 wmmas=0 +NATIVE Q4_K-256-1-bf16-7 wmmas=0 +NATIVE Q4_K-256-2-bf16-7 wmmas=0 +NATIVE Q4_K-256-3-bf16-7 wmmas=0 +NATIVE Q4_K-256-4-bf16-7 wmmas=0 +NATIVE Q4_K-256-0-bf16-83 wmmas=1 +NATIVE Q4_K-256-1-bf16-83 wmmas=1 +NATIVE Q4_K-256-2-bf16-83 wmmas=1 +NATIVE Q4_K-256-3-bf16-83 wmmas=1 +NATIVE Q4_K-256-4-bf16-83 wmmas=1 +NATIVE Q4_K-256-0-bf16-128 wmmas=1 +NATIVE Q4_K-256-1-bf16-128 wmmas=1 +NATIVE Q4_K-256-2-bf16-128 wmmas=1 +NATIVE Q4_K-256-3-bf16-128 wmmas=1 +NATIVE Q4_K-256-4-bf16-128 wmmas=1 +NATIVE Q4_K-256-0-bf16-2048 wmmas=1 +NATIVE Q4_K-256-1-bf16-2048 wmmas=1 +NATIVE Q4_K-256-2-bf16-2048 wmmas=1 +NATIVE Q4_K-256-3-bf16-2048 wmmas=1 +NATIVE Q4_K-256-4-bf16-2048 wmmas=1 +NATIVE Q4_K-256-0-f32-7 wmmas=0 +NATIVE Q4_K-256-1-f32-7 wmmas=0 +NATIVE Q4_K-256-2-f32-7 wmmas=0 +NATIVE Q4_K-256-3-f32-7 wmmas=0 +NATIVE Q4_K-256-4-f32-7 wmmas=0 +NATIVE Q4_K-256-0-f32-83 wmmas=1 +NATIVE Q4_K-256-1-f32-83 wmmas=1 +NATIVE Q4_K-256-2-f32-83 wmmas=1 +NATIVE Q4_K-256-3-f32-83 wmmas=1 +NATIVE Q4_K-256-4-f32-83 wmmas=1 +NATIVE Q4_K-256-0-f32-128 wmmas=1 +NATIVE Q4_K-256-1-f32-128 wmmas=1 +NATIVE Q4_K-256-2-f32-128 wmmas=1 +NATIVE Q4_K-256-3-f32-128 wmmas=1 +NATIVE Q4_K-256-4-f32-128 wmmas=1 +NATIVE Q4_K-256-0-f32-2048 wmmas=1 +NATIVE Q4_K-256-1-f32-2048 wmmas=1 +NATIVE Q4_K-256-2-f32-2048 wmmas=1 +NATIVE Q4_K-256-3-f32-2048 wmmas=1 +NATIVE Q4_K-256-4-f32-2048 wmmas=1 +NATIVE Q4_K-1024-0-f16-7 wmmas=0 +NATIVE Q4_K-1024-1-f16-7 wmmas=0 +NATIVE Q4_K-1024-2-f16-7 wmmas=0 +NATIVE Q4_K-1024-3-f16-7 wmmas=0 +NATIVE Q4_K-1024-4-f16-7 wmmas=0 +NATIVE Q4_K-1024-0-f16-83 wmmas=1 +NATIVE Q4_K-1024-1-f16-83 wmmas=1 +NATIVE Q4_K-1024-2-f16-83 wmmas=1 +NATIVE Q4_K-1024-3-f16-83 wmmas=1 +NATIVE Q4_K-1024-4-f16-83 wmmas=1 +NATIVE Q4_K-1024-0-f16-128 wmmas=1 +NATIVE Q4_K-1024-1-f16-128 wmmas=1 +NATIVE Q4_K-1024-2-f16-128 wmmas=1 +NATIVE Q4_K-1024-3-f16-128 wmmas=1 +NATIVE Q4_K-1024-4-f16-128 wmmas=1 +NATIVE Q4_K-1024-0-f16-2048 wmmas=1 +NATIVE Q4_K-1024-1-f16-2048 wmmas=1 +NATIVE Q4_K-1024-2-f16-2048 wmmas=1 +NATIVE Q4_K-1024-3-f16-2048 wmmas=1 +NATIVE Q4_K-1024-4-f16-2048 wmmas=1 +NATIVE Q4_K-1024-0-bf16-7 wmmas=0 +NATIVE Q4_K-1024-1-bf16-7 wmmas=0 +NATIVE Q4_K-1024-2-bf16-7 wmmas=0 +NATIVE Q4_K-1024-3-bf16-7 wmmas=0 +NATIVE Q4_K-1024-4-bf16-7 wmmas=0 +NATIVE Q4_K-1024-0-bf16-83 wmmas=1 +NATIVE Q4_K-1024-1-bf16-83 wmmas=1 +NATIVE Q4_K-1024-2-bf16-83 wmmas=1 +NATIVE Q4_K-1024-3-bf16-83 wmmas=1 +NATIVE Q4_K-1024-4-bf16-83 wmmas=1 +NATIVE Q4_K-1024-0-bf16-128 wmmas=1 +NATIVE Q4_K-1024-1-bf16-128 wmmas=1 +NATIVE Q4_K-1024-2-bf16-128 wmmas=1 +NATIVE Q4_K-1024-3-bf16-128 wmmas=1 +NATIVE Q4_K-1024-4-bf16-128 wmmas=1 +NATIVE Q4_K-1024-0-bf16-2048 wmmas=1 +NATIVE Q4_K-1024-1-bf16-2048 wmmas=1 +NATIVE Q4_K-1024-2-bf16-2048 wmmas=1 +NATIVE Q4_K-1024-3-bf16-2048 wmmas=1 +NATIVE Q4_K-1024-4-bf16-2048 wmmas=1 +NATIVE Q4_K-1024-0-f32-7 wmmas=0 +NATIVE Q4_K-1024-1-f32-7 wmmas=0 +NATIVE Q4_K-1024-2-f32-7 wmmas=0 +NATIVE Q4_K-1024-3-f32-7 wmmas=0 +NATIVE Q4_K-1024-4-f32-7 wmmas=0 +NATIVE Q4_K-1024-0-f32-83 wmmas=1 +NATIVE Q4_K-1024-1-f32-83 wmmas=1 +NATIVE Q4_K-1024-2-f32-83 wmmas=1 +NATIVE Q4_K-1024-3-f32-83 wmmas=1 +NATIVE Q4_K-1024-4-f32-83 wmmas=1 +NATIVE Q4_K-1024-0-f32-128 wmmas=1 +NATIVE Q4_K-1024-1-f32-128 wmmas=1 +NATIVE Q4_K-1024-2-f32-128 wmmas=1 +NATIVE Q4_K-1024-3-f32-128 wmmas=1 +NATIVE Q4_K-1024-4-f32-128 wmmas=1 +NATIVE Q4_K-1024-0-f32-2048 wmmas=1 +NATIVE Q4_K-1024-1-f32-2048 wmmas=1 +NATIVE Q4_K-1024-2-f32-2048 wmmas=1 +NATIVE Q4_K-1024-3-f32-2048 wmmas=1 +NATIVE Q4_K-1024-4-f32-2048 wmmas=1 +NATIVE Q6_K-256-0-f16-7 wmmas=0 +NATIVE Q6_K-256-1-f16-7 wmmas=0 +NATIVE Q6_K-256-2-f16-7 wmmas=0 +NATIVE Q6_K-256-3-f16-7 wmmas=0 +NATIVE Q6_K-256-4-f16-7 wmmas=0 +NATIVE Q6_K-256-0-f16-83 wmmas=1 +NATIVE Q6_K-256-1-f16-83 wmmas=1 +NATIVE Q6_K-256-2-f16-83 wmmas=1 +NATIVE Q6_K-256-3-f16-83 wmmas=1 +NATIVE Q6_K-256-4-f16-83 wmmas=1 +NATIVE Q6_K-256-0-f16-128 wmmas=1 +NATIVE Q6_K-256-1-f16-128 wmmas=1 +NATIVE Q6_K-256-2-f16-128 wmmas=1 +NATIVE Q6_K-256-3-f16-128 wmmas=1 +NATIVE Q6_K-256-4-f16-128 wmmas=1 +NATIVE Q6_K-256-0-f16-2048 wmmas=1 +NATIVE Q6_K-256-1-f16-2048 wmmas=1 +NATIVE Q6_K-256-2-f16-2048 wmmas=1 +NATIVE Q6_K-256-3-f16-2048 wmmas=1 +NATIVE Q6_K-256-4-f16-2048 wmmas=1 +NATIVE Q6_K-256-0-bf16-7 wmmas=0 +NATIVE Q6_K-256-1-bf16-7 wmmas=0 +NATIVE Q6_K-256-2-bf16-7 wmmas=0 +NATIVE Q6_K-256-3-bf16-7 wmmas=0 +NATIVE Q6_K-256-4-bf16-7 wmmas=0 +NATIVE Q6_K-256-0-bf16-83 wmmas=1 +NATIVE Q6_K-256-1-bf16-83 wmmas=1 +NATIVE Q6_K-256-2-bf16-83 wmmas=1 +NATIVE Q6_K-256-3-bf16-83 wmmas=1 +NATIVE Q6_K-256-4-bf16-83 wmmas=1 +NATIVE Q6_K-256-0-bf16-128 wmmas=1 +NATIVE Q6_K-256-1-bf16-128 wmmas=1 +NATIVE Q6_K-256-2-bf16-128 wmmas=1 +NATIVE Q6_K-256-3-bf16-128 wmmas=1 +NATIVE Q6_K-256-4-bf16-128 wmmas=1 +NATIVE Q6_K-256-0-bf16-2048 wmmas=1 +NATIVE Q6_K-256-1-bf16-2048 wmmas=1 +NATIVE Q6_K-256-2-bf16-2048 wmmas=1 +NATIVE Q6_K-256-3-bf16-2048 wmmas=1 +NATIVE Q6_K-256-4-bf16-2048 wmmas=1 +NATIVE Q6_K-256-0-f32-7 wmmas=0 +NATIVE Q6_K-256-1-f32-7 wmmas=0 +NATIVE Q6_K-256-2-f32-7 wmmas=0 +NATIVE Q6_K-256-3-f32-7 wmmas=0 +NATIVE Q6_K-256-4-f32-7 wmmas=0 +NATIVE Q6_K-256-0-f32-83 wmmas=1 +NATIVE Q6_K-256-1-f32-83 wmmas=1 +NATIVE Q6_K-256-2-f32-83 wmmas=1 +NATIVE Q6_K-256-3-f32-83 wmmas=1 +NATIVE Q6_K-256-4-f32-83 wmmas=1 +NATIVE Q6_K-256-0-f32-128 wmmas=1 +NATIVE Q6_K-256-1-f32-128 wmmas=1 +NATIVE Q6_K-256-2-f32-128 wmmas=1 +NATIVE Q6_K-256-3-f32-128 wmmas=1 +NATIVE Q6_K-256-4-f32-128 wmmas=1 +NATIVE Q6_K-256-0-f32-2048 wmmas=1 +NATIVE Q6_K-256-1-f32-2048 wmmas=1 +NATIVE Q6_K-256-2-f32-2048 wmmas=1 +NATIVE Q6_K-256-3-f32-2048 wmmas=1 +NATIVE Q6_K-256-4-f32-2048 wmmas=1 +NATIVE Q6_K-1024-0-f16-7 wmmas=0 +NATIVE Q6_K-1024-1-f16-7 wmmas=0 +NATIVE Q6_K-1024-2-f16-7 wmmas=0 +NATIVE Q6_K-1024-3-f16-7 wmmas=0 +NATIVE Q6_K-1024-4-f16-7 wmmas=0 +NATIVE Q6_K-1024-0-f16-83 wmmas=1 +NATIVE Q6_K-1024-1-f16-83 wmmas=1 +NATIVE Q6_K-1024-2-f16-83 wmmas=1 +NATIVE Q6_K-1024-3-f16-83 wmmas=1 +NATIVE Q6_K-1024-4-f16-83 wmmas=1 +NATIVE Q6_K-1024-0-f16-128 wmmas=1 +NATIVE Q6_K-1024-1-f16-128 wmmas=1 +NATIVE Q6_K-1024-2-f16-128 wmmas=1 +NATIVE Q6_K-1024-3-f16-128 wmmas=1 +NATIVE Q6_K-1024-4-f16-128 wmmas=1 +NATIVE Q6_K-1024-0-f16-2048 wmmas=1 +NATIVE Q6_K-1024-1-f16-2048 wmmas=1 +NATIVE Q6_K-1024-2-f16-2048 wmmas=1 +NATIVE Q6_K-1024-3-f16-2048 wmmas=1 +NATIVE Q6_K-1024-4-f16-2048 wmmas=1 +NATIVE Q6_K-1024-0-bf16-7 wmmas=0 +NATIVE Q6_K-1024-1-bf16-7 wmmas=0 +NATIVE Q6_K-1024-2-bf16-7 wmmas=0 +NATIVE Q6_K-1024-3-bf16-7 wmmas=0 +NATIVE Q6_K-1024-4-bf16-7 wmmas=0 +NATIVE Q6_K-1024-0-bf16-83 wmmas=1 +NATIVE Q6_K-1024-1-bf16-83 wmmas=1 +NATIVE Q6_K-1024-2-bf16-83 wmmas=1 +NATIVE Q6_K-1024-3-bf16-83 wmmas=1 +NATIVE Q6_K-1024-4-bf16-83 wmmas=1 +NATIVE Q6_K-1024-0-bf16-128 wmmas=1 +NATIVE Q6_K-1024-1-bf16-128 wmmas=1 +NATIVE Q6_K-1024-2-bf16-128 wmmas=1 +NATIVE Q6_K-1024-3-bf16-128 wmmas=1 +NATIVE Q6_K-1024-4-bf16-128 wmmas=1 +NATIVE Q6_K-1024-0-bf16-2048 wmmas=1 +NATIVE Q6_K-1024-1-bf16-2048 wmmas=1 +NATIVE Q6_K-1024-2-bf16-2048 wmmas=1 +NATIVE Q6_K-1024-3-bf16-2048 wmmas=1 +NATIVE Q6_K-1024-4-bf16-2048 wmmas=1 +NATIVE Q6_K-1024-0-f32-7 wmmas=0 +NATIVE Q6_K-1024-1-f32-7 wmmas=0 +NATIVE Q6_K-1024-2-f32-7 wmmas=0 +NATIVE Q6_K-1024-3-f32-7 wmmas=0 +NATIVE Q6_K-1024-4-f32-7 wmmas=0 +NATIVE Q6_K-1024-0-f32-83 wmmas=1 +NATIVE Q6_K-1024-1-f32-83 wmmas=1 +NATIVE Q6_K-1024-2-f32-83 wmmas=1 +NATIVE Q6_K-1024-3-f32-83 wmmas=1 +NATIVE Q6_K-1024-4-f32-83 wmmas=1 +NATIVE Q6_K-1024-0-f32-128 wmmas=1 +NATIVE Q6_K-1024-1-f32-128 wmmas=1 +NATIVE Q6_K-1024-2-f32-128 wmmas=1 +NATIVE Q6_K-1024-3-f32-128 wmmas=1 +NATIVE Q6_K-1024-4-f32-128 wmmas=1 +NATIVE Q6_K-1024-0-f32-2048 wmmas=1 +NATIVE Q6_K-1024-1-f32-2048 wmmas=1 +NATIVE Q6_K-1024-2-f32-2048 wmmas=1 +NATIVE Q6_K-1024-3-f32-2048 wmmas=1 +NATIVE Q6_K-1024-4-f32-2048 wmmas=1 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-comparison.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-comparison.json new file mode 100644 index 000000000..fce6949cd --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-comparison.json @@ -0,0 +1,2405 @@ +{ + "verdict": "PASS", + "cases": [ + { + "name": "Q4_K-256-0-f16-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "6048b5a368f048cec6145d2d46edbdaa9b01bae86a1d9daec7ab025095508918" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-1-f16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "ce24762ccc0bc727db2ba2adff0d765c1feb9bb0904da36a8daf75eaab661f84" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-2-f16-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "aa4fad2516dab722351508257f18902214b89e76e0269ab0fd84b19e2e4c0d52" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-3-f16-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "eb195d0041019b5d1fc3506d7825edda90f2221930701b5cbc22b5919c13c7df" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-4-f16-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "51237d92dec45a7a9e871a1a2104ca9042a5d3cf3a0f8c094afd3e587f964767" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-0-f16-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "be6ebde99c1c428af348b3f3e1a54167fac04e695c648bab3260785112044085" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-1-f16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "f01147a9b62ef4e782fbe180122fcc6852104d40b74932d556aef2532f186a37" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-2-f16-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "297b30bf1b93c0f7bc3ef30f4b84bb9fe97b45974494f4a41cea2da51f4e2836" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-3-f16-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "48b74168545d9f592260e0fb1636e692efe1d43c8656653be7ec4123c7a3d178" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-4-f16-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "fc860fb949a0343b3ce393bbecc07ddc193b3a19fd94f3ff06f12e2782f78a96" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-0-f16-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "74b7203e4528e4c52cd3f8db960a2f748ebdff7d549b7d71a37cb5e99ab13db0" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-1-f16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "3a72d5ce67d4e236b6f2a66e38fac33d9dcff10081e2aa1ee1acdae6d9443e31" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-2-f16-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "4dc05e7fd09f1733127cd4a1f7a24bbb606865a6fae65a2b389c9d51053a2dc1" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-3-f16-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "ce32b6fe3ddf1a9e05bce82417d795132c74c33ef6f7d4f6f6887528742a3d58" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-4-f16-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "5904899a3468420932dba4f4e79fc9d0f5561950d6a4e466dfdcad06827653f7" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-0-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "eda5c1de698dc7c57669ba208e2bf505aa596a77f56ef3eec99d10c9e3f965a2" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-1-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "35b89c26cb3b47464e0379df07bd8254b99d7410abba3d4deab6242e120e3ff4" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-2-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "872622f5cfe4f28ffa9c94cd5b143819835717c39deb0170fe16edb12e7ed60b" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-3-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "36263327ccfff4e0402ea52dbd77d87a64f8afa20f0d6564f2b77a3fbcbed0fe" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-4-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "4f0abc8f2e6fa747cca3bd6163b0c2422366585a75a2f67969b39f3d659a061c" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-256-0-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 10752, + "sha256": "3da2303cc6c8073872f5ff9d4990904ca393b1817665909ca2d4820cbc96f75e" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-1-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 14336, + "sha256": "ad3345f1b3d482367a22a7a1f329ca8f89d2d388a018e70e9e065bed33aa6137" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-2-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "d50568f2a3f18526bc3da5655cbd137b36110e1018dcea1e0e54306daf9b9bf1" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-3-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 71680, + "sha256": "50d65d9cccb574d0c5211cc7d6095053ca3eba729a42c154ca76ff397ae7b989" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-4-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 265216, + "sha256": "1e7da2af9b6427f58eb20d342855060af5801688735f9bc8fd183ac0f1374203" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-0-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 127488, + "sha256": "8c11dea0f37b9b50b97eee9e3f5745061e545355c22f71d25a560fdab5f20898" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-1-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 169984, + "sha256": "e471c755d7595ba60d9f1df65ecc977126d95daf61e9edba311f8a2f96ec4a09" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-2-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "0543b9a6f1bfeb591099bee819a9e5f243e454dae246c87d1f574bf995aff86e" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-3-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 849920, + "sha256": "0b67b6eff83f7503383cc1a2cbf29f4f2d0b49554ecdd4cc154355329dd5295d" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-4-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 3144704, + "sha256": "2e756b311c3b9ef0ee3b6f00c6b5ea0230d515f8c9842da70fdc854e47b52c8c" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-0-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 196608, + "sha256": "0cbbc82e928fd56452caf061a07593e547e44d8d39e196ed6ac85d2c95a52c65" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-1-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 262144, + "sha256": "8fa4e1a04706b1e6dd7301e212733d42d20bb763637f49387cc7d31772b4574b" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-2-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "503958abf8a9e8aebe80bc5be8c56c0aa5a30ae607f9857418eac3955c11df10" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-3-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 1310720, + "sha256": "d6692c8295840b71033ba8bb3f88f32a96da554171a45a2ea5d34f37eea64aca" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-4-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 4849664, + "sha256": "b14cc3c101ffbbec90fb98dbe4bf72977bb8bc4f1d1d1200b00c76e4e27a6f7b" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-0-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 3145728, + "sha256": "cd3c10dc9bf88a7bfa90ef2c53598a5561a2b164ad952fc3336f6be0a981bbbd" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-1-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 4194304, + "sha256": "c2e3c7d52384eb3f0481fe0883aa3839871a5e1dc7dd3fed14f26b6f8f133c99" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-2-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "f6664e29513bbe97a1c4d39540e802ca79d5a382203864f198a01798b407b8bd" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-3-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 20971520, + "sha256": "e4ce1d92381fc07c75cb4e033775a3459b7b75a1f3cf6ecee04549b6c70f226c" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-4-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 77594624, + "sha256": "bae7f76b7cf16e56da5ec01ddb6cfd83abc2079d62719861da9a9c5cfda20f0b" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-256-0-f32-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "f8945f36eed3e2e3db5dae6be732338715f4abde911c38b5b55722a45fa74908" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-1-f32-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "65cbc80d2a61b140908f46c828ea53d5929aec92bc59bb158166093421a88b90" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-2-f32-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "a54c043f83348f1fbdb55d08a420b4bf4757d8121e0074911f77f11cb84ebe48" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-3-f32-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "e95429a5566104eab9fb19da5d5d5b8615bf60c99d6fd89da6be64f05903cb18" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-4-f32-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "282450848b13687274149b92b496fc6b229ff8916d9bad95579734abfdaf8b1f" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-0-f32-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "4c9bca0e075f45ed4ce29dd6d40a8242bf5b37af83bcbfa1a72cccf6770883b6" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-1-f32-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "dda623e250daeed9f7483af76b4a235e0af8bc213dab2891b3f52a8a93066978" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-2-f32-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "76141bd9cf85dda7ae2c69b6163ba6c3279250458b8ccd4dc1f05b7146bd5816" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-3-f32-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "59f02f93ece7653c6d689ea26661f8e5c26150e1c2627fc545b010629f88bd52" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-4-f32-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "38b9d0756008a72e7be2fb2e2a82afaed3d94c31aef377be15beab7c8912efbb" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-0-f32-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "0b06d9cea120b30a83967a3540d15637aac11ca0f72275951a7322ab6389f7b5" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-1-f32-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "750d60f605e17ac37fee3ec55e5882924d1b4123f9bcdeee3b0f44ac3384a9dd" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-2-f32-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "b317310870f6b611155bdc5c2074fe0acbd7f760b216492e7f18e43673f8d1b3" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-3-f32-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "aa8337bdc413bb362fe1b5e842a425cec5d4ea0493e771edaf8297c440ecb2f8" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-4-f32-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "d26997281b34d3b201f5baa6eb3821c2fc0e10c2044c7a378c090f559778b162" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-0-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "a9826b463ff6246cc640734b35c0aa265c99ba8f461e53f27f32461f7e56a917" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-1-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "398ea039ddd8883daa97a5989a17961b298489efcfb14856f44395f48d5f798a" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-2-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "67e2bff1eee18be4231625e0cd069d1b59bed86c704a7aebafafa0a2e46ce643" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-3-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "ac397cb0d0a5194f15a6bb7ab88aee14d4f72633838e69c974495bdc5b8b8542" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-256-4-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "4ba2122d96368f645fde861e6bf215c08e62cafb69510ca9655af6b8a5dfc88c" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-0-f16-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "824cc76cdaa3b4686ab73451d58341affa04047ac6e44d116357cd42e6e84d98" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-1-f16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "195811939cb48098d6fbc710ff15f070aca85a9cb88ac904ccc40ae9b97791a6" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-2-f16-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "586b42da3782fd04a7b5d45b534dac23ec59de93d75666ef78cb2e92a29b8316" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-3-f16-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "019392d2c62a7d4bcc5aa540e00550382fe525a70aec18b60306622677c2935b" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-4-f16-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "23f41104645472e9c5b9e659722a955f5a09f5687d33feb7b2f6708b10ad7820" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-0-f16-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "2b53cebf15a41bf19f943c7ed1439fb608de9a6e59e495c10257bb043474a219" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-1-f16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "a1d4299ba848455f7c6954b7760ed2a131c3231851ce31af84813d29ec652d24" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-2-f16-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "826a02c127e15b00a9dd07e76f8305c8d6f8ce2ff2322de82a3c78310fc2021f" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-3-f16-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "651ddab06db2f61cb2bd093f61a8da3f732d0fa3a8eb67df1a513bbbaaa58506" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-4-f16-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "1b812b962c3f28f7d43c56965c88a7580643ec8b12b68728cf34bb86c0d5c74f" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-0-f16-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "946808e882c673597ad13cc8edbed2666896a8a145e500c5d6bf92674a51fc11" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-1-f16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "6c59f43dad03ebe4bf55fc267b42b213ef80958433a0d0dc92acd9a635cf5e06" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-2-f16-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "98c59ed899f4b173d09c67060d8e8f30ed8151d96ce4185aaba6b6176e99f80e" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-3-f16-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "d1fbf4761fdf7af4a694c9034de41e1ba114fa3fc7e2f15992446df0dfc2b444" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-4-f16-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "bea7a4dec52d9446fc129d352ad81841f831fc98a2ddb9d04cd91c5cba0d6b5f" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-0-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "0bb8f2519806ca8052fca22c8f5135dc5d64df6c4f1397212ca15adaa6c681a5" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-1-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "513f60dacbd677a98a512e2b31d10cb51c0be012a1f84f01e5477103f01c95aa" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-2-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "54ff92cf0cd783af075168f0f2a8feec2c25227e646b609becbd5e2ea4005fe9" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-3-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "73d37a3d0832946d329af87c9f0ee863724d578a294824a9dc217824dccb5a29" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-4-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "b4e4c50ee7e138f6f47a46441fc7ea8085234dd9d33816d7b05b8581f42990ac" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q4_K-1024-0-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 10752, + "sha256": "5ff7e2aed1e537fe7e9043dc1f4f4ed75657e79738ca53e0ed3008c312e9d7d4" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-1-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 14336, + "sha256": "f2a4f90d714332ba4468c2064bca95bf70c2883f5419d1c3693bade2d525248c" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-2-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "3ffad422a8e84e6c14093e3971648bcd678377b12e1838cddba493fe65302845" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-3-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 71680, + "sha256": "9c7f3dfc9a03762cd5eb17b9291b1573fde1ae10b4ab67131b97d293e4757935" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-4-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 265216, + "sha256": "a279e6e234d499f3b4730d34dfba0b8626f19f25b9e8011a1d632027ddf2ca12" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-0-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 127488, + "sha256": "39befac6057aad00dc984a544f3567ff94d115519a460ceb299b5173b9a9bb7d" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-1-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 169984, + "sha256": "87a39ad8feb3085189731d303de9ad0a849798fce186d8d14ed8569f1d784e7e" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-2-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "abfbf75f5acfc591e48c8297cd8a30385b881ef0856cdc46dff01d1ea38d0fdc" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-3-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 849920, + "sha256": "8b4e38e1547ee44884bc31928203d6e35e35519bb40ca10fe9126deed753e369" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-4-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 3144704, + "sha256": "21695237c2c464f5626964c289238028f4bd1d0bc88cb35ba077ef66437bb336" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-0-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 196608, + "sha256": "9405396bb2a8a3417d2422f916d510efae0c43ac40c3851d9f63211d823c735f" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-1-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 262144, + "sha256": "d9c396e8137d5bfe9d3f97c3dad2e7c693bce957acadf30959ca3d1f8cea4718" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-2-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "6f1d9805ea8c052543e8438c1d46c00cce56e71169ee4e59b5a5388b3905e0a6" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-3-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 1310720, + "sha256": "f37946b924d21d59e848d4bebf9d13112a52996edc5a49f0749a7f5c5d5c308f" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-4-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 4849664, + "sha256": "e2e9b9d2a089b86d01230cfc9c5c69899b90603f72b5e83fe9c25dc7456da884" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-0-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 3145728, + "sha256": "96c0ea00fa3caab7c51e18f8b06dbd931b05231a378a284f1d0f9b3f1435161d" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-1-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 4194304, + "sha256": "7cab671716f7faab9b8305281bb9b77a798a91d6898eb333c2c0746cf335cd15" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-2-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "2aba8618d14e300510048c75dd1644457d3132a2787e3da576b21a42bbe5a850" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-3-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 20971520, + "sha256": "4317338a1735420c48c762a583f7545cecd4f9684a9b72e23e2762c7120112e2" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-4-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 77594624, + "sha256": "0bc2d327061c542bffc3a8026290556b6e9053e1d9b297adbff1a41bc6bdfc62" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q4_K-1024-0-f32-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "d0677d8f8ea951cf68f3a4031254eb47806e82d2d5a146700c636ed7c2cd9a92" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-1-f32-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "e2aba6d0c153d92f5eda718d08e1c88863d0ba1feefe8835c98f46c2fccfa398" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-2-f32-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "839539a10f810043a7fe5dbb4a32c29b4fcc47511c5891e28844e809246812b5" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-3-f32-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "d1ba77f43b55ce1c4033761238950b39399c30f3a05052948ef94415547ee1eb" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-4-f32-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "c04fafcb0009aab095818fb6daafd6404fd697e57a5bbeeab9429d6d42b1faf8" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-0-f32-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "d397d9f08a66b3b1969b35deb088621702c623ba45f1894296a051657752001f" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-1-f32-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "553da23fc2d0db1ed2c0c301ef81f9a0eb9935bb426f7d28182041e9432ba98f" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-2-f32-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "2dbb3de99782c8400e4e052573f89841d0551d0012016eed756776873079a9b2" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-3-f32-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "343af5aff3ff2bed7dfec6e24813073cb3aabf2dbf584c86d0456a3603abe2c7" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-4-f32-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "498d0a963e819e8b4059e05e37d22b9e5f42bfc082c89dd17dc0924362a1dbd3" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-0-f32-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "b01e05fbc8e0bbe7a49a149fa1867579db5a5c1dd4744bb01b4dee5d1148dde4" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-1-f32-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "6b103705671fd7816ce4e0d8450f15a5cf94ad5f39b41e7b35ce1619550c7224" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-2-f32-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "f93f8bee9f6fc13cc860ff51e3c0a2f410f2a5a7e9f4ff1eb8c6714d3c5a010c" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-3-f32-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "4e26015cc3e2d97be7505a6ee721a80d873124a774148c9dbb0279cd3df82d9b" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-4-f32-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "eb212617e4b392a7320d00da8b7ded6f165ba9eb7bf692b4f537f1135bb6d7ce" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-0-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "2837fd1dda11b82a2c41b1e4b81c4cddb32e65a70c11897110e72c38739e2c21" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-1-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "219f56bb6d2d405797b98afdd300d5516d4596117aab173a06b63f1d77e583bf" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-2-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "2637904112b7c76c077aa33dfdfdd59125d8088702cc538c2dbfeefa99d2caaf" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-3-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "b14c8d61cd2728df3b690d952ac3672991527205dd60cce822a6b59be9b7a76d" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q4_K-1024-4-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "3569107fad3bb99179a459570ddbeafc0cbe35611a5d816604a15f34d508a8ea" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-0-f16-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "c41ee1e64e493537138857c2f4750c1b0c6ba841282e2d3f4b87ccb6ce143a58" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-1-f16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "f960e356e4c282c07ceccc228ea5050a9ef691917736273c44fa4baf1bc09496" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-2-f16-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "1cf87fb51d4c0ce0e68a90f46bd7f65090ab139a6267ad3959ae4d025b7b19eb" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-3-f16-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "4390cd0bc23f99918c589fbd74dc89456a18e31c945b17601527641fd69fb072" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-4-f16-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "77489391e601cc63dbb27d4a8bf26b6d7db0f340e822afa805673f68c3f872b6" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-0-f16-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "c89687e33528d9d4292fed27bc57bc545fe2d074a2751a7919aacbbecae396d4" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-1-f16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "dfc28416659d777a0da84a042dffff8f115b902e0a71e1adbeafb4826d8746ba" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-2-f16-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "96c275a264fe39b23cf829de8e21f2f781ef2fc9af504d7c346fec9add66580e" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-3-f16-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "e2250b20536c27a3a1c5faeedf8d1de861e82f1d873ac4e6b5d75d21881b1dc7" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-4-f16-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "04d110a6197b32480caf0a41f74bbc43c2bbc686730fdce31953e195d715e09a" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-0-f16-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "3046f9b953944c03e92928d6f73c75be26293fd6b7326f86a838285e2c38d499" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-1-f16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "e999b7601beef0d6c98b68c890fee00c9ebce5994001539424c0a8d966869b1d" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-2-f16-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "b2882857262d99b706b7fc950262731c7cbbc333cda1b127ae8cc7abac379afd" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-3-f16-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "c2f6fee433f310d87ad2902c873571fbcab4b9e7e08f7696f644e8b639d2da3f" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-4-f16-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "74f23afe6cda2e409380309817b1fdb3750a871d9f87df75eac5e5acd1ffe1f9" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-0-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "390ed4a3b3d0012ad5260894245010aa6fa58e3f32811fd3b2df64c4a20c6f5e" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-1-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "d2ff4263bdba5d14fc26fc7dd81fb463b3f21891bd969bb0d5af70e5a2cd1ef5" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-2-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "14661bb0b66854c09bbebe9f17e1354d3f714f06a0cf753739b819153d2083a1" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-3-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "c80bd4890cc4181e368de7d0b59b8e9e312679bce19a1d720a7c529e7018669e" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-4-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "a44f19084cd297b6d0cd52aca3015e67feb4b0d9e4ff3a97e363620d5df53b4b" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-256-0-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 10752, + "sha256": "2a4053c660aa138df157c1deec28c539c23022e3e7841ba6d4a2fa81dd7dc544" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-1-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 14336, + "sha256": "9308104643713bf177787125b50291dea77f3294c95ac6306487fb468ddd1c26" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-2-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "dc31568a8e09ed19792fb5154091329ff150b824c4b3c0268ee43a18ec507a90" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-3-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 71680, + "sha256": "9f0c760b9be72e0f74095d2f408867eb581afdf83cbe4f2199e51a7fbdfae6fd" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-4-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 265216, + "sha256": "a91db74a65f0892f645246d736fb1f41724b279b1a72f55af03867c75c04a99d" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-0-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 127488, + "sha256": "810cbb9b0bddba843703b1f89340fcad78a561b722bc61809e40f1f02f08ccd5" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-1-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 169984, + "sha256": "10917593ad17e0d43a44a3407e955eb99445053a0ff656c36d07acfe07053a15" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-2-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "5d4ae0840950b628b66f6e19cbfd16591a5a7f7956586a6963d884c333330d35" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-3-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 849920, + "sha256": "aa92683b60f010e6ebba479fd616443c08d1022df6e25bd4bbdcc38b2fbd5d3a" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-4-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 3144704, + "sha256": "c7b4224e86583b25aca81ed952e6d5d4bf57617b789d5c354694ac7f623e5a31" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-0-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 196608, + "sha256": "943e166944cf1df1b162ed503bc8f66aa5686a62831ba869b9f89adf921c3da8" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-1-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 262144, + "sha256": "b4b09a4ff9b3c62876fbf7feff9b97558c4325e7cd929fe7fa6bf99fde0c8c32" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-2-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "562c7b73e61f6ffe1b8d642b60ab95c438d0bbd890bc18420c61e4bdc47e0f09" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-3-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 1310720, + "sha256": "5a3104402c40f72a76cd8e7c400838d4e35ed0fad52681cd53bd8e6feecdf0a0" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-4-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 4849664, + "sha256": "9137c05f4fbf9f55577e7a643f66b0f83b70a000f50b760205be512563e6d271" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-0-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 3145728, + "sha256": "64eeb86a133ca356a5edd1e93bcd41f615684c3dead853b997e5176e182d2974" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-1-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 4194304, + "sha256": "683e8593ef98f4809c84b606c1dad2723abe71621bb7b93d25834432207ba7b3" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-2-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "141abfb39a348e655f9de7c22b62ba1eade6705bf8382a3bd94b9fb7ad845c00" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-3-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 20971520, + "sha256": "1e9f751409c32256f81aa6065b9aae3e4f3bdf098192d6e89ec48df079ddda6e" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-4-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 77594624, + "sha256": "60ffd16719400bfb14412f34489bf814ea0857fdaa50e6992aa6666c73f9c69c" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-256-0-f32-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "a03b63960d74e1ddc273724b7c9c01f2f742dba41a3c3913eec30489bdc84bca" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-1-f32-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "7b257eae58d57a6e639486cf1c2babd23d303d08c5305a299001996184490794" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-2-f32-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "6812f4b349ac597310decea8e724a3635cc529b102604903f9ea63826c8d021c" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-3-f32-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "e9ffc449a4f43eaec46c6a43c6e1ad6f73ab7e418adcb36221e368acfc8753cf" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-4-f32-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "ce57127a0c2d409462e97f4c6e1d5c4c45ed87c0386f93222135d1efeb29c1c1" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-0-f32-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "72a55a0eaef40be9f093d22c9d983bc5543b5d197d2bfc011f6537bc4b559c0f" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-1-f32-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "a35532a6fc4f4efa6cade02dc225f2d2bc23c1c97e9b98effd91ce7b8dc12784" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-2-f32-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "790ff74ebac8f489b6fa15d80584b3db2528f06c19bb256a211c0576e50b70b4" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-3-f32-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "f64c46a845f5b8e832950329bb093616c5224e254596214a7c8559eb9fd15c73" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-4-f32-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "6bb82a821b97a9ff3f30662c5ccaf3618a73c1c055744d085e8d4624d1ebe6b6" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-0-f32-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "d7b9998928d65d5e18f403f97f28dccb84b7c4f654457d67b317eff439f63c7b" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-1-f32-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "f7cb61a202bfb10450c237828beec2f8351f4b5b4f04b4f9c73ab2bb05f3476a" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-2-f32-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "a9bb2f18f936ad1b7ce1fdbf159361eba722d1554b4a796da03b076e4b291565" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-3-f32-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "8ef44b68c50d3d6f280450956da1fde2bd205c9533038b5c681bdd066831e5af" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-4-f32-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "ab4948c930f733bcdb976f3c21c7e7308cf5b032284e037a33601118b28c048f" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-0-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "38b97d4e882ce01783938e6e20caa93faf526af045c3276b0ba8e08e17c2ffb4" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-1-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "7d75e8014dac4f6b7b877dbc3946a7c42c6be67c90378920f4d53f0fb2a4a7a9" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-2-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "ec49aac9aa9f8dec9bb9675d44b6741742fb279a915b6a224267c3bdbe9dd183" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-3-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "3aa697cafa1001964ebf616132cc43b12dba9f3d9b4d6af1a5ce93a4845cae0f" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-256-4-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "8cec1213e81020bd75f2b870258cb94617a0d0fec326d2419c9edb17ea2c0e7c" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-0-f16-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "a9579ef5ba722d1fedd34136056a7a8d237f42c1361f271deb8d86caa3011abd" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-1-f16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "6c8c08a9f14ccab24615d0dc4aa9a2dce46d9d873c6073023dbd654460139dcf" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-2-f16-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "0c77b06de479a9b599054a03f74f62fd3a62a0bb479ab747e236c7fb1b0d7e6d" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-3-f16-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "8a1c2880db7d91204e4d7b7a15be2b29434ef9f61c4609942cffc40c3c40f711" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-4-f16-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "8d816da1e6beb8fe1958b7130eb21e34d9dc3611fc937525e47d7f7cdb2f6d4d" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-0-f16-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "837ec14b9dba013850a2bf09899d9f0e21a52f8def4cb974d4d1d127888f2fb6" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-1-f16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "f85826d0f7dffbe9fc07188a33877cd8bf7fe91297aa588fb372db8589f49add" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-2-f16-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "85b3208cf2229cc2c4d052bb07b1c4d1c7dcfc4ef35d9c3692b3c537c1f909f2" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-3-f16-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "a86060b8866bb69fe604e40736fcc40e04e269ecbff65277d9b3180a7ec35d2d" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-4-f16-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "6222e41764423e05216f2423f7a4884e20f9cf615bf53f65244b0aef2fb28221" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-0-f16-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "688795e9a3561d2ba6de781009e7d67c6029c7cb2665ed73ef2430cf93aff70e" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-1-f16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "44da18ce73802e3244701b13832648e50dba784f900c279d5ef9441f888657b0" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-2-f16-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "7d2e819e81e5598f3a10da93dd30c8e256fa7a98e73b1bc6113b12ed143852f1" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-3-f16-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "5d4f432fc9b29c5e924b5a3a5bccbddd04a03bf94f7f5048fab77f40413ea2d2" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-4-f16-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "a6f1352552f322d0efe9534cbb1f8e5a14a6e823cd613e639af336cdc55981a1" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-0-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "eb33d1814561c507f264184f3b8bcaade05209225341cb8eb88800ed71547e7f" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-1-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "8595a81eea83149f4c1ff0b920da97744249a0a79b7e3a2e61863e4e1da9f061" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-2-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "19e10b530e3ab8bc11edfbf3e8e720a2a59e5a12655bf3a72f5c40cc8b65ff82" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-3-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "8dabefc7d3c23fbec2a05bbe1dd1a5c1a8d0d474fc813f66c78aee0ef136301c" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-4-f16-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "0a6b899aab633761264047a553e13f0a89abe074359ee87c312d3a732fce954b" + }, + "atol": 1, + "rtol": 0.1 + }, + { + "name": "Q6_K-1024-0-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 10752, + "sha256": "62b64bc089e0016b20904ee34ab483595e94411354ef3a81df853a4710f66d38" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-1-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 14336, + "sha256": "e4cf135d88581714ccf64272ee0225fb39b3c8393c4359000cac8232af196e94" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-2-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "e977627f5cee5b3568e30f16b1995c80cc4d640cfe47d5677c0a22089830774d" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-3-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 71680, + "sha256": "28d89a3d8a9fff96e423f0849818541958229905fb4f4f30a2204200daf54e90" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-4-bf16-7", + "verdict": "PASS", + "result": { + "bytes": 265216, + "sha256": "a5773a824de898597a49c3b03ae6eb3f2c35e2a56c7ed1569b78950a03e59bed" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-0-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 127488, + "sha256": "fe6c71a2b3f28bc852373fa96b904baf91e40ecbdb13d9c2ad33a9b3110d0332" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-1-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 169984, + "sha256": "94ec19d1a51e898cfee0a099bd85e7b12e1729bd1a501a37703e715c21d2ba70" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-2-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "6880c38941b4b38e8045b3aeede1b95c1821985ea3b724aa2027fecbaeec4310" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-3-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 849920, + "sha256": "0184ab3177a73688acbe4acc88341647c03dae81956b01f8989da407202d75fa" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-4-bf16-83", + "verdict": "PASS", + "result": { + "bytes": 3144704, + "sha256": "1f97dd7395b95641d9d9adb6888d82292bd112faad1424edc7f8ce2df7c6789b" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-0-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 196608, + "sha256": "700c8a909cecaf89fcd5b61bc788d15de50f824b3345772ffc61f7024176dedc" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-1-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 262144, + "sha256": "bb7ee81ff05fa320408188e3d1f7a97c86683fefe600fca51dccad74f99a7eaa" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-2-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "d000e8e69e15077fae82587fb00c67970288cabebff6e7e6703a45d3359716c7" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-3-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 1310720, + "sha256": "b3c1fe57186dc0aebad6ccc86cfb057bc4d0dd45b3b6eaa0e5daf488e7580d45" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-4-bf16-128", + "verdict": "PASS", + "result": { + "bytes": 4849664, + "sha256": "56efdb1d6e0003f7b97b10bde32db95978373ddb58aed41a4a3bbd64616b93b1" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-0-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 3145728, + "sha256": "977eda9590baa6b638979adee499862824dbad45539af472f993ef561a10c059" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-1-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 4194304, + "sha256": "0e5fecc59cee936382d1d23602506984934ca44dedbbde361bd9746ff7d0bf2a" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-2-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "11cd8169573a65d5dfca2b8da0ff3b06235b271aa459ca25e69b2ec38947eba7" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-3-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 20971520, + "sha256": "d6a7ba9c6bc7687f1d9eeda70fb96c0565aebd5fc191704cae4dfb0a985ae741" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-4-bf16-2048", + "verdict": "PASS", + "result": { + "bytes": 77594624, + "sha256": "0179b22f5fff896aa072b820f15389e0dc679b6dcc95f337b267deb5a822a552" + }, + "atol": 1.5, + "rtol": 10000.0 + }, + { + "name": "Q6_K-1024-0-f32-7", + "verdict": "PASS", + "result": { + "bytes": 21504, + "sha256": "afb3a5f42292eeac0f2cf8e72cc768312fb14bc616db1baacb351820260bb197" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-1-f32-7", + "verdict": "PASS", + "result": { + "bytes": 28672, + "sha256": "c98a304c2e262b6d5002a6e34d4b9c7224d54f78971aaeb6063544b95b7e36d3" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-2-f32-7", + "verdict": "PASS", + "result": { + "bytes": 57344, + "sha256": "4b34e3dc4f3d7c3d14ecde200ff6a5e478ce2cfa1087320a333d0427305ddbb7" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-3-f32-7", + "verdict": "PASS", + "result": { + "bytes": 143360, + "sha256": "ae8da6061d0f6562c4b9a8c385685ec519f92648efc8a1f3fd4ad9a7f25c4e1e" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-4-f32-7", + "verdict": "PASS", + "result": { + "bytes": 530432, + "sha256": "4c9756ea743ce479abf9046f719bf3685345f5ddee5e15982e71b09d4f3c0f40" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-0-f32-83", + "verdict": "PASS", + "result": { + "bytes": 254976, + "sha256": "cc5b41c5d836ed425aa00010f2d74701fb1310d8c0f698fed92271ee41e3b91e" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-1-f32-83", + "verdict": "PASS", + "result": { + "bytes": 339968, + "sha256": "42b0c6c239eecca0bf1a8464f0d5ca5e04d20abc0ef3a5381580b877f746e3a2" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-2-f32-83", + "verdict": "PASS", + "result": { + "bytes": 679936, + "sha256": "e090161e0f5a918f84438f4fe6fdfd312d6da2186f4ae40267db7fc6925afc4d" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-3-f32-83", + "verdict": "PASS", + "result": { + "bytes": 1699840, + "sha256": "b87c3dd62d9b118051ea30381caf309a3b701ea30b07d365dc190acda467431a" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-4-f32-83", + "verdict": "PASS", + "result": { + "bytes": 6289408, + "sha256": "65f300033e0ae4bb6f0a8aca2f89c553b4809c2bdc89359ce17682fd680ad157" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-0-f32-128", + "verdict": "PASS", + "result": { + "bytes": 393216, + "sha256": "9374bb38e83c261ce5167d108955b3f3bcc4d92fa20e6f41c0a3999c97052f49" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-1-f32-128", + "verdict": "PASS", + "result": { + "bytes": 524288, + "sha256": "3347047256e58067e3eebc1dc96c35d329917f1260ea9967861aa1e1bf8b1adc" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-2-f32-128", + "verdict": "PASS", + "result": { + "bytes": 1048576, + "sha256": "750d56d11687fdf551b535b537f75d88fce75d5e5cd6b6d21d66a7cdfaf70ce7" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-3-f32-128", + "verdict": "PASS", + "result": { + "bytes": 2621440, + "sha256": "8a9fa5bf818ba20b6c7029747866f84b23f0b4641fa97b1252c6e116fa7d71b3" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-4-f32-128", + "verdict": "PASS", + "result": { + "bytes": 9699328, + "sha256": "4a8df8a0f5958c1eaebfe7b340dcb46e2f61ebb772b8f9f9656b6f46d7692565" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-0-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 6291456, + "sha256": "d8b8f708581b621cd23cd108099aed3606668188d0fa14ad026fdfc9321b71b7" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-1-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 8388608, + "sha256": "a053475e3e588196c33ac9aca3fd8493fc7666e717061ff1dd2fdbcff3f23a4c" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-2-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 16777216, + "sha256": "14b38951daf877ab8b2b25a5b9237ecb2be0c5d7f30c50aa1724d89f49359c25" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-3-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 41943040, + "sha256": "44157265ffefffa7e5cfa7f5589c927cefac1b748a2ad228ea79b8b2d5332518" + }, + "atol": 1.2, + "rtol": 20.0 + }, + { + "name": "Q6_K-1024-4-f32-2048", + "verdict": "PASS", + "result": { + "bytes": 155189248, + "sha256": "53307b5a20e7a613c32eac04c62d47b2912c0c2020b5c2b46b07ac5e2c66802a" + }, + "atol": 1.2, + "rtol": 20.0 + } + ] +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-summary.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-summary.json new file mode 100644 index 000000000..073210fed --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/original-mmq-summary.json @@ -0,0 +1,74 @@ +{ + "version": 1, + "plugin_pin": "d4c1f0d082fc7cd4350da56689109a01c1f29d6c", + "fixture_manifest": { + "bytes": 48002, + "sha256": "f83b5c3e5cdb988b623c1b7e565e325a9ed9ea8085ea132bc8e08e6978bc1bbb" + }, + "torch": "2.12.0+git6bbd260", + "torch_git": "6bbd26020da1c6dc198625dfcdd968b1e4e6b1c5", + "hip": "7.2.53211", + "architecture": "gfx1100", + "ops_source": { + "bytes": 7597, + "sha256": "daac821e871ff73df30b1836c17a7ef9574f8be6e4bedd5f6456c442b69c90db" + }, + "fixtures": { + "Quant_Q4_K_256.gguf": { + "bytes": 4018560, + "sha256": "c6256d86c59bc96db1eada611ec1fccb147eb3a738e3693cd2a68a497df77f53" + }, + "Quant_Q4_K_1024.gguf": { + "bytes": 16073088, + "sha256": "00577c14c413f41d179dd11f5c92e0e3f1b9ed0c2ab410a0960f493db9d32c6b" + }, + "Quant_Q6_K_256.gguf": { + "bytes": 5860224, + "sha256": "b2c8f71efa6a27204ae1c111eb1cecf4617cd3a07be5e7be80fb28e6cbe23839" + }, + "Quant_Q6_K_1024.gguf": { + "bytes": 23439744, + "sha256": "e7d173382ec11eaa6ae981e8600dce38196203f193433df95ab83944fb4508cc" + } + }, + "cases": 240, + "original_tensors": 20, + "native_extension_cases": 240, + "dimensions": { + "tokens": [ + 7, + 83, + 128, + 2048 + ], + "width": [ + 256, + 1024 + ], + "rows": [ + 768, + 1024, + 2048, + 5120, + 18944 + ], + "dtype": [ + "bf16", + "f16", + "f32" + ], + "seed": [ + 0 + ], + "type": [ + 12, + 14 + ] + }, + "input_output_artifacts": { + "primary": "/home/vikash/oracle/rdna3-wmma-latest/mmq-primary", + "native": "/home/vikash/oracle/rdna3-wmma-latest/mmq-native" + }, + "native_comparison": "PASS against both original dense reference and primary outputs", + "f16_adaptation": "Native F32 output is narrowed to F16 after capture; native BF16 output remains BF16." +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-first.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-first.log new file mode 100644 index 000000000..e61a15658 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-first.log @@ -0,0 +1,284 @@ +Session role: + ok role=helper row=KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 session=ppid:1554714 branch=row/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 +other coordinators recorded: 1 + - /home/vikash/vllm.cpp/.git/worktrees/vllm.cpp-rdna3-wmma - session ppid:1179272 on vikash-system (pid 1179479, last heartbeat 1229s ago) +Record gates: + ok check-conflict-markers + ok check-prompt-contract + ok check-agent-record + ok check-release-binary-contract + ok check-release-workflow + ok check-windows-release-state + ok check-container-matrix + ok check-container-workflow + ok check-build-runtime-deps + ok check-lease-ccache + ok check-role-discipline + ok claim-view + ok check-readme-structure + ok check-quickstart-recipes + ok check-benchmark-index + ok check-model-checklist + ok check-supported-models + ok check-env-doc + ok check-fusion-consistency + ok check-attention-rung-consistency + ok check-fp4-resident-consistency + ok check-cuda-op-arch-gate + ok check-rocm-dp4a-intrinsic + ok check-runner-routing-consistency + ok check-surface-coverage + ok check-test-registration + ok check-snapshot-pins + ok check-oracle-pins + ok check-oracle-denominator-flags + ok check-now-current + ok check-gate-commands + ok check-symbol-anchors + ok ready-for-helper + ok upstream-inventory + ok audit-live-rows +Mutation suites: + ok test_check_prompt_contract + ok test_agent_gates + ok test_agent_record + ok test_check_release_binary_contract + ok test_release_manifest + ok test_release_archive + ok test_release_pipeline + ok test_check_windows_release_state + ok test_release_postpublish_audit + ok test_check_container_matrix + ok test_check_container_workflow + ok test_check_build_runtime_deps + ok test_check_lease_ccache + ok test_validate_container_image + ok test_release_index + ok test_release_metadata + ok test_release_accelerator_metadata + ok test_release_macos_metadata + ok test_release_windows_metadata + ok test_cpu_release_gates + ok test_agent_role + ok test_agent_onboard + ok test_agent_start + ok test_gate_bringup + ok test_env_agnostic_tooling + ok test_claim_view + ok test_upstream_inventory + ok test_check_readme_structure + ok test_check_quickstart_recipes + ok test_check_benchmark_index + ok test_check_model_checklist + ok test_check_supported_models + ok test_check_env_doc + ok test_checker_text + ok test_check_fusion_consistency + ok test_check_attention_rung_consistency + ok test_check_fp4_resident_consistency + ok test_check_cuda_op_arch_gate + ok test_check_rocm_dp4a_intrinsic + ok test_rocm_rank_kernels + ok test_check_runner_routing_consistency + ok test_check_surface_coverage + ok test_check_test_registration + ok test_check_snapshot_pins + ok test_check_oracle_pins + ok test_cpu_x86_llamacpp_floor + ok test_audit_live_rows + ok test_check_gate_commands + ok test_gpu_lock_one_truth + ok test_main_baseline + ok test_agent_preflight_skip_report + ok test_agent_pr_body + ok test_agent_issue_index + ok test_check_symbol_anchors + ok test_check_oracle_denominator_flags + ok test_rocm_quant_gather_compare + ok test_rocm_strix_ourarm_staged + ok test_tokengate_buildreq + ok test_check_conflict_markers + ok test_check_tree_compiles + ok test_prepush_checker_names + ok test_ab_arms_differ + ok test_variadic_harness + ok test_ltx25_pixel_ab_harness + ok test_ltx2_dit_attn_knob_arms + ok test_ltx25_ab_memwatch + ok test_ltx2_oracle_goldens + ok test_ltx2_latent_dump + ok test_tower_skip_rss_report + ok test_tower_skip_rss_arm + ok test_ci_walk_base + ok test_rc_stage_checkpoint + ok test_sglang_lease_identity + ok test_q4exp_layerfp_diff + SKIP test_qwen3_capture_tools + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_qwen3_capture_outputs + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_ltx25_render_compare + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_absolute_reference + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_prompt_adherence + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_adherence_detail_loss + numpy is not importable here, and every case computes over arrays. CI installs python3-numpy and runs the same suite. + SKIP test_convert_glm5_next_gguf + numpy is not importable here, and the converter this suite exercises needs it. CI installs python3-numpy and runs the same suite. + ok test_check_windows_portability + ok trailer suites + ok commit style suites + ok tools suites + SKIP check-arm-isa-build.py + needs arguments preflight does not supply: usage: check-arm-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + ok check-attention-rung-consistency.py + ok check-benchmark-index.py + ok check-build-runtime-deps.py + ok check-conflict-markers.py + ok check-container-matrix.py + ok check-container-workflow.py + SKIP check-cpu-isa-build.py + needs arguments preflight does not supply: usage: check-cpu-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + SKIP check-cuda-fat-gencode.py + needs arguments preflight does not supply: usage: check-cuda-fat-gencode.py [-h] --compile-commands COMPILE_COMMANDS + ok check-cuda-op-arch-gate.py + ok check-device-leakage.py + ok check-dsv4-gguf-namemap.py + ok check-env-doc.py + ok check-fp4-resident-consistency.py + ok check-fusion-consistency.py + ok check-gate-commands.py + ok check-gemv-invocation-consistency.py + ok check-lease-ccache.py + ok check-model-checklist.py + ok check-oracle-denominator-flags.py + ok check-oracle-pins.py + SKIP check-pr-size.py + needs arguments preflight does not supply: usage: check-pr-size.py [-h] --base BASE --head HEAD [--branch BRANCH] + ok check-prompt-contract.py + ok check-quickstart-recipes.py + ok check-readme-structure.py + ok check-release-binary-contract.py + ok check-release-workflow.py + ok check-rocm-dp4a-intrinsic.py + ok check-role-discipline.py + ok check-runner-routing-consistency.py + ok check-site.py + ok check-snapshot-pins.py + ok check-supported-models.py + ok check-surface-coverage.py + ok check-symbol-anchors.py + ok check-test-registration.py + SKIP check-triton-aot-multiarch.py + needs arguments preflight does not supply: usage: check-triton-aot-multiarch.py [-h] --vendored-root VENDORED_ROOT + ok check-windows-portability.py + ok check-windows-release-state.py +Committed range vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok now-current range +Tree compiles: + compiling what this change reaches. A records-only change returns + at once; a wide header change can take minutes. + ok tree-compiles + check-tree-compiles: 8 of 8 translation unit(s) in scope compiled (2.0s). This checks syntax and semantics only; it does not link, run, or leave the default host configuration. +Commit trailers vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok commit-trailers + ok commit-style + +12 gate(s) SKIPPED: test_qwen3_capture_tools test_qwen3_capture_outputs test_ltx25_render_compare test_ltx25_absolute_reference test_ltx25_prompt_adherence test_ltx25_adherence_detail_loss test_convert_glm5_next_gguf check-arm-isa-build.py check-cpu-isa-build.py check-cuda-fat-gencode.py check-pr-size.py check-triton-aot-multiarch.py +NOT a green preflight: a skipped gate reported nothing about this tree. +Each reason is printed beside its SKIP above. + +================ .agents/NOW.md ================ +# NOW — the one-Read resume surface + + + +Snapshot, not log. History is git; evidence: +[parity ledger](parity-ledger.md), and benchmarks. Budget: 100 lines / 6,000 +characters. + +## Live claims + +Rendered on demand: **`scripts/now.py`**. It assembles every `SPIKE`/`ACTIVE` +row, its claim and PR, and the row's own next step from the matrices, +`.agents/claims/`, and each row spec's `## Now`. + +They are NOT listed here any more (ENG-NOW-DERIVED, #374). A per-row table in +this file made it a surface every row-advancing PR had to write, which is a lock +under `AGENTS.md` §Records; it conflicted in 5 of the 16 conflicting open PRs +measured at `d928e2c3`. What remains below is authored at operator cadence, so +no per-row change needs to touch this file at all. + +## Current gate + +Token-exact (or ratified distributional) vs pinned vLLM; ≥ throughput and ≤ +latency/memory on every axis, both gate models, reproduced 2–3x idle. See +[verification](verification.md). Pin: vLLM `e126687a9a` (0.28.1rc1.dev132) since +2026-09-03 (#2817). **A gate HAS now run at it and it PASSED** (2026-09-04, job +`7386f034-246a-4af5-9a04-f98aafffce54`, `dgx:gpu0`, 2h15m): the OPT candidate +captured at the target is byte-identical to the committed bar -- +`IDS mismatched_positions 0 of 96`, `IDS_BYTE_EQUAL True`, +`SELECTOR K=5 multi_valued_cells 0`, `TOKENGATE_VERDICT PASS`. The default +FLASH_ATTN backend produced the tokens, so the FA-on-GB10 risk did not fire. Our +arm's 96/96 carries over unchanged because the candidate's bytes are identical to +the bar it already passed. The BENCHMARK baselines are still measured at +`555967922` and still owe step 6 (#2818, `OPEN` at a 2026-09-12 read), **and the +other four strict goldens -- 27B W4A4, 32B-NVFP4A16, 35B, Coder -- are still +owed at the target.** The gate that passed is the OPT-125m one; it discharges +nothing about those four. They were anchored on #2794, which closed `COMPLETED` +on 2026-09-06, so the anchor is gone and not the obligation: it lives under +`## Owed` in [the tokengate spec](specs/upstream-sync-headpin-tokengate.md#L569), +unanchored by design, and whoever takes it files the issue then. Also at +[oracles/vllm.md](oracles/vllm.md#L93). + + +## Next actions + +0. **35B mid-band: first lever LANDED** (+1.31% c8, +1.38% c4). The fused + shared gate_up sink still took the MoE-marlin route (20320 launches = 5.4% + GPU); `VT_MARLIN_DENSE_PAIR` ON. Second lever LANDED: shared down-proj emits + bf16, **+2.05% BIT-IDENTICAL**. SiLU [spec](specs/moe-silu-vectorize.md) + **NEGATIVE**: the 9.2x was a MEAN over a bimodal kernel (min 1.34/max 979us); + decode SiLU already beats vLLM's. ~5% UNATTRIBUTED; needs decode-only, 1 tool. +1. **27B NVFP4 0.72x -> 0.85x** (FP8 tower native). Next: NVFP4 MLP marlin, 68% + of roof. Dense-marlin +0.5%; Triton-AOT GDN a WASH. +2. **Spike the Parakeet encoder row** (vLLM: `nano_nemotron_vl.py`; the + transducer half is NOT in vLLM: separate call). +3. **Qwen3.5-4B #206:** +2.83% `PENDING`; latency/VRAM open. +4. **Invocation-parity prevention:** CI guard + checklist; build-verify + `kGemvHeuristicAlgos` on dgx. +5. **Restore `local-ai-worker`** on dgx at campaign end (`--restart=always`). +6. **Protocol substrate — partly done.** Triage/audit + `STATUS.md` ratchet + + `AGENTS.md` tiering DONE. REMAINING: anchor backfill (6 model rows need a + DECISION); record-era rollover BLOCKED on `DONE` rows bound to + `parity-ledger.md` LINE anchors (re-anchor by ROW ID). + +**Operator/helper protocol** ([spec](workflow.md)): roles are a coordinator +record or worktree+PR; helpers claim `row/` with a DRAFT PR. Role gates +ENFORCE `agent-start.py` → claim → preflight. Review FAIL loops to a fresh +implementer until PASS. Queue: 10 rows; backfill 79, 30 anchored. +**Upstream inventory** ([spec](specs/upstream-derived-inventory-2026-08-05.md)): +SM060/061/070 below vLLM's floor = OUT-OF-SCOPE; COMP-*/DISTRIBUTED-* are REAL +unported work; **every arch in the pinned registry has a row** (the count lives in +[model-matrix.md](model-matrix.md), not here — #622); llama.cpp's 11 extra +devices IN SCOPE (`ROAD-V1-D6`). + +## Protocol invariants that bite most often + +- Every commit carries `FOLLOWING_AGENTS_PROTOCOL` + `Assisted-by:`; never + `Co-Authored-By` or `Signed-off-by` from AI. +- Three MUST-route seams: fusion, merged-GEMM, born-on-the-runner decode. + Not routing is drift; allowlist consciously or fold. +- Mirror vLLM; never ask how a feature should behave. +- `nsys` BOTH sides, SAME tool, before any perf claim; cross-tool comparisons + never establish invocation parity; whole-run sums mix prefill. +- GPU: claim a lease with `rc run` or `rc hold`. Never `ssh` to a box, because + that makes the fleet report it free while you are on it. The flock now lives + INSIDE the lease ([environment](environment.md)). Single-load steady-state, + never reload per rep, named tmux. +- Never weaken a checker to pass; repair the record. +- Work happens in its own worktree on a task branch; the shared checkout stays + clean on `main`, never a work surface. Land via `row/*` PR or authorized + local merge; remove the worktree after. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-results.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-results.json new file mode 100644 index 000000000..6ab76b1d0 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-results.json @@ -0,0 +1,27 @@ +{ + "before": { + "command": "GIT_CONFIG_GLOBAL=/dev/null scripts/agent-preflight.sh", + "exit": 0 + }, + "staged": { + "command": "GIT_CONFIG_GLOBAL=/dev/null scripts/agent-preflight.sh --staged", + "exit": 0 + }, + "paired_skips": [ + "test_qwen3_capture_tools", + "test_qwen3_capture_outputs", + "test_ltx25_render_compare", + "test_ltx25_absolute_reference", + "test_ltx25_prompt_adherence", + "test_ltx25_adherence_detail_loss", + "test_convert_glm5_next_gguf", + "check-arm-isa-build.py", + "check-cpu-isa-build.py", + "check-cuda-fat-gencode.py", + "check-pr-size.py", + "check-triton-aot-multiarch.py" + ], + "failed_checks": 0, + "source_tree_compiled_units": 8, + "gate_skips_are_passes": false +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-staged.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-staged.log new file mode 100644 index 000000000..f2968dcca --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/preflight-staged.log @@ -0,0 +1,286 @@ +Session role: + ok role=helper row=KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 session=ppid:1714754 branch=row/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 +other coordinators recorded: 1 + - /home/vikash/vllm.cpp/.git/worktrees/vllm.cpp-rdna3-wmma - session ppid:1179272 on vikash-system (pid 1179479, last heartbeat 2036s ago) +Record gates: + ok check-conflict-markers + ok check-prompt-contract + ok check-agent-record + ok check-release-binary-contract + ok check-release-workflow + ok check-windows-release-state + ok check-container-matrix + ok check-container-workflow + ok check-build-runtime-deps + ok check-lease-ccache + ok check-role-discipline + ok claim-view + ok check-readme-structure + ok check-quickstart-recipes + ok check-benchmark-index + ok check-model-checklist + ok check-supported-models + ok check-env-doc + ok check-fusion-consistency + ok check-attention-rung-consistency + ok check-fp4-resident-consistency + ok check-cuda-op-arch-gate + ok check-rocm-dp4a-intrinsic + ok check-runner-routing-consistency + ok check-surface-coverage + ok check-test-registration + ok check-snapshot-pins + ok check-oracle-pins + ok check-oracle-denominator-flags + ok check-now-current + ok check-gate-commands + ok check-symbol-anchors + ok ready-for-helper + ok upstream-inventory + ok audit-live-rows +Mutation suites: + ok test_check_prompt_contract + ok test_agent_gates + ok test_agent_record + ok test_check_release_binary_contract + ok test_release_manifest + ok test_release_archive + ok test_release_pipeline + ok test_check_windows_release_state + ok test_release_postpublish_audit + ok test_check_container_matrix + ok test_check_container_workflow + ok test_check_build_runtime_deps + ok test_check_lease_ccache + ok test_validate_container_image + ok test_release_index + ok test_release_metadata + ok test_release_accelerator_metadata + ok test_release_macos_metadata + ok test_release_windows_metadata + ok test_cpu_release_gates + ok test_agent_role + ok test_agent_onboard + ok test_agent_start + ok test_gate_bringup + ok test_env_agnostic_tooling + ok test_claim_view + ok test_upstream_inventory + ok test_check_readme_structure + ok test_check_quickstart_recipes + ok test_check_benchmark_index + ok test_check_model_checklist + ok test_check_supported_models + ok test_check_env_doc + ok test_checker_text + ok test_check_fusion_consistency + ok test_check_attention_rung_consistency + ok test_check_fp4_resident_consistency + ok test_check_cuda_op_arch_gate + ok test_check_rocm_dp4a_intrinsic + ok test_rocm_rank_kernels + ok test_check_runner_routing_consistency + ok test_check_surface_coverage + ok test_check_test_registration + ok test_check_snapshot_pins + ok test_check_oracle_pins + ok test_cpu_x86_llamacpp_floor + ok test_audit_live_rows + ok test_check_gate_commands + ok test_gpu_lock_one_truth + ok test_main_baseline + ok test_agent_preflight_skip_report + ok test_agent_pr_body + ok test_agent_issue_index + ok test_check_symbol_anchors + ok test_check_oracle_denominator_flags + ok test_rocm_quant_gather_compare + ok test_rocm_strix_ourarm_staged + ok test_tokengate_buildreq + ok test_check_conflict_markers + ok test_check_tree_compiles + ok test_prepush_checker_names + ok test_ab_arms_differ + ok test_variadic_harness + ok test_ltx25_pixel_ab_harness + ok test_ltx2_dit_attn_knob_arms + ok test_ltx25_ab_memwatch + ok test_ltx2_oracle_goldens + ok test_ltx2_latent_dump + ok test_tower_skip_rss_report + ok test_tower_skip_rss_arm + ok test_ci_walk_base + ok test_rc_stage_checkpoint + ok test_sglang_lease_identity + ok test_q4exp_layerfp_diff + SKIP test_qwen3_capture_tools + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_qwen3_capture_outputs + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_ltx25_render_compare + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_absolute_reference + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_prompt_adherence + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_adherence_detail_loss + numpy is not importable here, and every case computes over arrays. CI installs python3-numpy and runs the same suite. + SKIP test_convert_glm5_next_gguf + numpy is not importable here, and the converter this suite exercises needs it. CI installs python3-numpy and runs the same suite. + ok test_check_windows_portability + ok trailer suites + ok commit style suites + ok tools suites + SKIP check-arm-isa-build.py + needs arguments preflight does not supply: usage: check-arm-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + ok check-attention-rung-consistency.py + ok check-benchmark-index.py + ok check-build-runtime-deps.py + ok check-conflict-markers.py + ok check-container-matrix.py + ok check-container-workflow.py + SKIP check-cpu-isa-build.py + needs arguments preflight does not supply: usage: check-cpu-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + SKIP check-cuda-fat-gencode.py + needs arguments preflight does not supply: usage: check-cuda-fat-gencode.py [-h] --compile-commands COMPILE_COMMANDS + ok check-cuda-op-arch-gate.py + ok check-device-leakage.py + ok check-dsv4-gguf-namemap.py + ok check-env-doc.py + ok check-fp4-resident-consistency.py + ok check-fusion-consistency.py + ok check-gate-commands.py + ok check-gemv-invocation-consistency.py + ok check-lease-ccache.py + ok check-model-checklist.py + ok check-oracle-denominator-flags.py + ok check-oracle-pins.py + SKIP check-pr-size.py + needs arguments preflight does not supply: usage: check-pr-size.py [-h] --base BASE --head HEAD [--branch BRANCH] + ok check-prompt-contract.py + ok check-quickstart-recipes.py + ok check-readme-structure.py + ok check-release-binary-contract.py + ok check-release-workflow.py + ok check-rocm-dp4a-intrinsic.py + ok check-role-discipline.py + ok check-runner-routing-consistency.py + ok check-site.py + ok check-snapshot-pins.py + ok check-supported-models.py + ok check-surface-coverage.py + ok check-symbol-anchors.py + ok check-test-registration.py + SKIP check-triton-aot-multiarch.py + needs arguments preflight does not supply: usage: check-triton-aot-multiarch.py [-h] --vendored-root VENDORED_ROOT + ok check-windows-portability.py + ok check-windows-release-state.py +Committed range vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok now-current range +Tree compiles: + compiling what this change reaches. A records-only change returns + at once; a wide header change can take minutes. + ok tree-compiles + check-tree-compiles: 8 of 8 translation unit(s) in scope compiled (2.0s). This checks syntax and semantics only; it does not link, run, or leave the default host configuration. +Commit trailers vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok commit-trailers + ok commit-style +Staged change: + ok now-current --staged + +12 gate(s) SKIPPED: test_qwen3_capture_tools test_qwen3_capture_outputs test_ltx25_render_compare test_ltx25_absolute_reference test_ltx25_prompt_adherence test_ltx25_adherence_detail_loss test_convert_glm5_next_gguf check-arm-isa-build.py check-cpu-isa-build.py check-cuda-fat-gencode.py check-pr-size.py check-triton-aot-multiarch.py +NOT a green preflight: a skipped gate reported nothing about this tree. +Each reason is printed beside its SKIP above. + +================ .agents/NOW.md ================ +# NOW — the one-Read resume surface + + + +Snapshot, not log. History is git; evidence: +[parity ledger](parity-ledger.md), and benchmarks. Budget: 100 lines / 6,000 +characters. + +## Live claims + +Rendered on demand: **`scripts/now.py`**. It assembles every `SPIKE`/`ACTIVE` +row, its claim and PR, and the row's own next step from the matrices, +`.agents/claims/`, and each row spec's `## Now`. + +They are NOT listed here any more (ENG-NOW-DERIVED, #374). A per-row table in +this file made it a surface every row-advancing PR had to write, which is a lock +under `AGENTS.md` §Records; it conflicted in 5 of the 16 conflicting open PRs +measured at `d928e2c3`. What remains below is authored at operator cadence, so +no per-row change needs to touch this file at all. + +## Current gate + +Token-exact (or ratified distributional) vs pinned vLLM; ≥ throughput and ≤ +latency/memory on every axis, both gate models, reproduced 2–3x idle. See +[verification](verification.md). Pin: vLLM `e126687a9a` (0.28.1rc1.dev132) since +2026-09-03 (#2817). **A gate HAS now run at it and it PASSED** (2026-09-04, job +`7386f034-246a-4af5-9a04-f98aafffce54`, `dgx:gpu0`, 2h15m): the OPT candidate +captured at the target is byte-identical to the committed bar -- +`IDS mismatched_positions 0 of 96`, `IDS_BYTE_EQUAL True`, +`SELECTOR K=5 multi_valued_cells 0`, `TOKENGATE_VERDICT PASS`. The default +FLASH_ATTN backend produced the tokens, so the FA-on-GB10 risk did not fire. Our +arm's 96/96 carries over unchanged because the candidate's bytes are identical to +the bar it already passed. The BENCHMARK baselines are still measured at +`555967922` and still owe step 6 (#2818, `OPEN` at a 2026-09-12 read), **and the +other four strict goldens -- 27B W4A4, 32B-NVFP4A16, 35B, Coder -- are still +owed at the target.** The gate that passed is the OPT-125m one; it discharges +nothing about those four. They were anchored on #2794, which closed `COMPLETED` +on 2026-09-06, so the anchor is gone and not the obligation: it lives under +`## Owed` in [the tokengate spec](specs/upstream-sync-headpin-tokengate.md#L569), +unanchored by design, and whoever takes it files the issue then. Also at +[oracles/vllm.md](oracles/vllm.md#L93). + + +## Next actions + +0. **35B mid-band: first lever LANDED** (+1.31% c8, +1.38% c4). The fused + shared gate_up sink still took the MoE-marlin route (20320 launches = 5.4% + GPU); `VT_MARLIN_DENSE_PAIR` ON. Second lever LANDED: shared down-proj emits + bf16, **+2.05% BIT-IDENTICAL**. SiLU [spec](specs/moe-silu-vectorize.md) + **NEGATIVE**: the 9.2x was a MEAN over a bimodal kernel (min 1.34/max 979us); + decode SiLU already beats vLLM's. ~5% UNATTRIBUTED; needs decode-only, 1 tool. +1. **27B NVFP4 0.72x -> 0.85x** (FP8 tower native). Next: NVFP4 MLP marlin, 68% + of roof. Dense-marlin +0.5%; Triton-AOT GDN a WASH. +2. **Spike the Parakeet encoder row** (vLLM: `nano_nemotron_vl.py`; the + transducer half is NOT in vLLM: separate call). +3. **Qwen3.5-4B #206:** +2.83% `PENDING`; latency/VRAM open. +4. **Invocation-parity prevention:** CI guard + checklist; build-verify + `kGemvHeuristicAlgos` on dgx. +5. **Restore `local-ai-worker`** on dgx at campaign end (`--restart=always`). +6. **Protocol substrate — partly done.** Triage/audit + `STATUS.md` ratchet + + `AGENTS.md` tiering DONE. REMAINING: anchor backfill (6 model rows need a + DECISION); record-era rollover BLOCKED on `DONE` rows bound to + `parity-ledger.md` LINE anchors (re-anchor by ROW ID). + +**Operator/helper protocol** ([spec](workflow.md)): roles are a coordinator +record or worktree+PR; helpers claim `row/` with a DRAFT PR. Role gates +ENFORCE `agent-start.py` → claim → preflight. Review FAIL loops to a fresh +implementer until PASS. Queue: 10 rows; backfill 79, 30 anchored. +**Upstream inventory** ([spec](specs/upstream-derived-inventory-2026-08-05.md)): +SM060/061/070 below vLLM's floor = OUT-OF-SCOPE; COMP-*/DISTRIBUTED-* are REAL +unported work; **every arch in the pinned registry has a row** (the count lives in +[model-matrix.md](model-matrix.md), not here — #622); llama.cpp's 11 extra +devices IN SCOPE (`ROAD-V1-D6`). + +## Protocol invariants that bite most often + +- Every commit carries `FOLLOWING_AGENTS_PROTOCOL` + `Assisted-by:`; never + `Co-Authored-By` or `Signed-off-by` from AI. +- Three MUST-route seams: fusion, merged-GEMM, born-on-the-runner decode. + Not routing is drift; allowlist consciously or fold. +- Mirror vLLM; never ask how a feature should behave. +- `nsys` BOTH sides, SAME tool, before any perf claim; cross-tool comparisons + never establish invocation parity; whole-run sums mix prefill. +- GPU: claim a lease with `rc run` or `rc hold`. Never `ssh` to a box, because + that makes the fleet report it free while you are on it. The flock now lives + INSIDE the lease ([environment](environment.md)). Single-load steady-state, + never reload per rep, named tmux. +- Never weaken a checker to pass; repair the record. +- Work happens in its own worktree on a task branch; the shared checkout stays + clean on `main`, never a work surface. Land via `row/*` PR or authorized + local merge; remove the worktree after. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutation-recipe.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutation-recipe.py new file mode 100644 index 000000000..91aaa7e34 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutation-recipe.py @@ -0,0 +1,63 @@ +import hashlib,json,os,re,shlex,shutil,subprocess +from pathlib import Path +root=Path('/home/vikash/vllm.cpp-rdna3-wmma-impl') +build=root/'build-rdna3-wmma' +scratch=build/'mutation-copy' +scratch.mkdir(exist_ok=True) +original=root/'src/vt/rocm/rocm_grouped_gemm.hip' +source=original.read_text() +original_hash=hashlib.sha256(original.read_bytes()).hexdigest() +commands=subprocess.check_output(['ninja','-C',str(build),'-t','commands','test_capi_rocm_quant_wmma'],text=True).splitlines() +compile_line=next(c for c in commands if ' -c ' + str(original) in c) +compile_command=shlex.split(compile_line) +link_command=shlex.split(commands[-1].removeprefix(': && ').removesuffix(' && :')) +results=[] +for name in ('admission','q4-launch','q6-launch','scalar-control'): + directory=scratch/name + directory.mkdir(exist_ok=True) + mutated=source + if name=='admission': + old='vt::rocm::GcnArchNameHasQuantWmma(prop.gcnArchName)' + assert mutated.count(old)==1 + mutated=mutated.replace(old,old+' && std::strncmp(prop.gcnArchName, "gfx1100", 7) != 0') + elif name=='scalar-control': + old='const char* e = std::getenv("VT_ROCM_QUANT_WMMA");' + assert mutated.count(old)==1 + mutated=mutated.replace(old,'const char* e = nullptr;') + else: + fmt='Q4K' if name=='q4-launch' else 'Q6K' + pattern=r'KQuantGemmKWmma'+fmt+r'<<<[\s\S]*?o, w, qact, m, n, nsb, n_tiles\);' + mutated,count=re.subn(pattern,'(void)o; (void)grid_wmma; // mutation: remove only the launch, retain counters',mutated) + assert count==1 + input_path=directory/'rocm_grouped_gemm.hip' + object_path=directory/'rocm_grouped_gemm.hip.o' + archive=directory/'libvllm.a' + binary=directory/'test_capi_rocm_quant_wmma' + input_path.write_text(mutated) + compile_args=compile_command.copy()+["-Wno-unneeded-internal-declaration"] + compile_args[compile_args.index('-o')+1]=str(object_path) + compile_args[compile_args.index('-c')+1]=str(input_path) + if '-MF' in compile_args: + compile_args[compile_args.index('-MF')+1]=str(object_path)+'.d' + with (directory/'build.log').open('w') as log: + compiled=subprocess.call(compile_args,cwd=build,stdout=log,stderr=subprocess.STDOUT) + if compiled: raise RuntimeError(f'{name} compile exit{compiled}') + shutil.copy2(build/'libvllm.a',archive) + subprocess.run(['ar','r',str(archive),str(object_path)],check=True) + link_args=[str(archive) if x in ('libvllm.a',str(build/'libvllm.a')) else x for x in link_command] + link_args[link_args.index('-o')+1]=str(binary) + subprocess.run(link_args,cwd=build,stdout=log,stderr=subprocess.STDOUT,check=True) + print('BUILT '+name,flush=True) + run=['flock','/home/vikash/gpu.lock','env','HIP_VISIBLE_DEVICES=0','ROCR_VISIBLE_DEVICES=0','timeout','120s',str(binary)] + with (directory/'result.log').open('w') as log: + status=subprocess.call(run,cwd=build,stdout=log,stderr=subprocess.STDOUT) + result={'mutation':name,'exit':status,'command':run,'source_sha256':hashlib.sha256(input_path.read_bytes()).hexdigest(), + 'original_restored':hashlib.sha256(original.read_bytes()).hexdigest()==original_hash, + 'result_log':str(directory/'result.log')} + results.append(result) + (scratch/'report.json').write_text(json.dumps(results,indent=2)+'\n') + print(json.dumps(result),flush=True) + if status!=1: raise RuntimeError(f'{name} expected assertion failure, got{status}') + if not result['original_restored']: raise RuntimeError('original source changed') + archive.unlink() + binary.unlink() diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-admission.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-admission.log new file mode 100644 index 000000000..fc28096ad --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-admission.log @@ -0,0 +1,9 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: Q4_K public WMMA dispatch mismatch diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q4-launch.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q4-launch.log new file mode 100644 index 000000000..69ef590c4 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q4-launch.log @@ -0,0 +1,13 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=2 q6_wmma=1 tokens= 33 111 28 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: scalar completion tokens differ +PUBLIC prompt=37 q4_wmma=2 q6_wmma=1 tokens= 99 102 7 124 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q6-launch.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q6-launch.log new file mode 100644 index 000000000..d9b571677 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-q6-launch.log @@ -0,0 +1,11 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +engine-fatal: EngineCore busy loop threw: vt rocm: embedding: id 2147483647 out of range [0, 128) +async-llm: output handler saw engine death: EngineCore encountered an issue. See stack trace (above) for the root cause. [vt rocm: embedding: id 2147483647 out of range [0, 128)] +PUBLIC WMMA FAILED: public completion: diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-scalar-control.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-scalar-control.log new file mode 100644 index 000000000..6330d04d1 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations-scalar-control.log @@ -0,0 +1,4 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: Q4_K public WMMA dispatch mismatch +PUBLIC WMMA FAILED: scalar control failed diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations.json new file mode 100644 index 000000000..d31969b32 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/production-mutations.json @@ -0,0 +1,74 @@ +[ + { + "mutation": "admission", + "exit": 1, + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "120s", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/admission/test_capi_rocm_quant_wmma" + ], + "source_sha256": "6b0dc4e3f5f1dd7be2b7642823d9f2a96e33a9014680304489d9668fd4933c0d", + "original_restored": true, + "result_log": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/admission/result.log", + "tracked_log": "production-mutations-admission.log" + }, + { + "mutation": "q4-launch", + "exit": 1, + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "120s", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/q4-launch/test_capi_rocm_quant_wmma" + ], + "source_sha256": "e64d91ffb5435eea826275413163d55e03a89be6a42f45e7408ea490fcf5cfda", + "original_restored": true, + "result_log": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/q4-launch/result.log", + "tracked_log": "production-mutations-q4-launch.log" + }, + { + "mutation": "q6-launch", + "exit": 1, + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "120s", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/q6-launch/test_capi_rocm_quant_wmma" + ], + "source_sha256": "03c1e11120471a8bfb25d6a6c32bea2061e01fb2f7a19df2f67b2d0e1cc97495", + "original_restored": true, + "result_log": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/q6-launch/result.log", + "tracked_log": "production-mutations-q6-launch.log" + }, + { + "mutation": "scalar-control", + "exit": 1, + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "120s", + "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/scalar-control/test_capi_rocm_quant_wmma" + ], + "source_sha256": "01e584547cab09a7ee46e4791cf9fe056682f365be391b8f21389e500a922660", + "original_restored": true, + "result_log": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/mutation-copy/scalar-control/result.log", + "tracked_log": "production-mutations-scalar-control.log" + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/public-green.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/public-green.log new file mode 100644 index 000000000..427beea82 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/public-green.log @@ -0,0 +1,13 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=2 q6_wmma=1 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=2 q6_wmma=1 tokens= 99 102 7 124 +PUBLIC WMMA PASS: 1024 logits, token-exact, max_abs_error=0 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/public-red.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/public-red.log new file mode 100644 index 000000000..fc28096ad --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/public-red.log @@ -0,0 +1,9 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: Q4_K public WMMA dispatch mismatch diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/tile-bodies.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/tile-bodies.json new file mode 100644 index 000000000..d8912617a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/tile-bodies.json @@ -0,0 +1,10 @@ +{ + "KQuantGemmKWmmaQ4K": { + "identical": true, + "sha256": "25fd44e18b8af7a635a74fb2eb8cec4fd69ff66079a09840721aecd417b7006d" + }, + "KQuantGemmKWmmaQ6K": { + "identical": true, + "sha256": "cb1550538a0fd25d81617e925bb0bfe0e3c278f3e6aeedaa3c69f53cc610635c" + } +} From 6e65c6fad158c7d2e7cd2f583c6b50e1ab694cbf Mon Sep 17 00:00:00 2001 From: Vikash Loomba Date: Sun, 13 Sep 2026 21:59:12 -0700 Subject: [PATCH 4/8] record(KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3): seal independent WMMA verification Preserve operator and fresh-review evidence for the unchanged implementation. The review passes with no findings. The operator HIP gate passes with the same five resource skips, and all seven supplemental NumPy suites execute. Keep the original harness failures and unresolved model gate explicit. Tracks ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:GPT-6 [Codex] --- .agents/specs/rocm-rdna3-quant-wmma.md | 4 +- .../rocm-rdna3-quant-wmma/README.md | 57 +- .../integration-checks.json | 49 ++ .../operator/baseline-broad.log | 69 +++ .../operator/baseline-focused.log | 12 + .../operator/baseline-receipt.json | 22 + .../operator/candidate-arch.log | 6 + .../operator/candidate-build.log | 22 + .../operator/candidate-tests.log | 71 +++ .../numpy-suites/numpy-only-summary.json | 10 + .../operator/numpy-suites/summary.json | 30 + .../test_convert_glm5_next_gguf.log | 108 ++++ .../test_ltx25_absolute_reference.log | 42 ++ .../test_ltx25_adherence_detail_loss.log | 61 ++ .../test_ltx25_prompt_adherence.log | 53 ++ .../test_ltx25_render_compare.log | 5 + .../test_qwen3_capture_outputs-numpy-only.log | 37 ++ .../test_qwen3_capture_outputs.log | 355 ++++++++++++ .../test_qwen3_capture_tools-numpy-only.log | 142 +++++ .../numpy-suites/test_qwen3_capture_tools.log | 153 +++++ .../operator/preflight-original-failure.log | 196 +++++++ .../operator/receipt.json | 548 ++++++++++++++++++ .../operator/role-after-rename.log | 2 + .../review/admission-build.log | 5 + .../review/admission-focused.log | 67 +++ .../review/admission-public.log | 10 + .../review/admission-restoration.json | 4 + .../review/arch-admit-unmeasured-gfx11.log | 42 ++ .../review/arch-attention-gfx1100.log | 16 + .../review/arch-ignore-invalid-features.log | 38 ++ .../review/arch-mutation-results.json | 162 ++++++ .../review/arch-reject-valid-features.log | 26 + .../review/arch-remove-gfx1100.log | 22 + .../review/arch-remove-gfx1200.log | 18 + .../review/arch-remove-gfx1201.log | 18 + .../review/arch-unchanged.log | 6 + .../review/delete-q4-build.log | 5 + .../review/delete-q4-focused.log | 41 ++ .../review/delete-q4-public.log | 14 + .../review/delete-q4-restoration.json | 4 + .../review/delete-q6-build.log | 5 + .../review/delete-q6-focused.log | 41 ++ .../review/delete-q6-public.log | 12 + .../review/delete-q6-restoration.json | 4 + .../review/delete-q6-zero-build.log | 5 + .../review/delete-q6-zero-focused.log | 41 ++ .../review/delete-q6-zero-public.log | 14 + .../review/delete-q6-zero-restoration.json | 4 + .../review/implementation-receipt-audit.json | 80 +++ .../logs/rdna3-wmma-review-arch-full.log | 6 + .../logs/rdna3-wmma-review-configure.log | 35 ++ .../rdna3-wmma-review-focused-default.log | 6 + .../logs/rdna3-wmma-review-focused-scalar.log | 6 + .../logs/rdna3-wmma-review-full-hip.log | 71 +++ .../logs/rdna3-wmma-review-full-preflight.log | 286 +++++++++ .../rdna3-wmma-review-mutation-q6-zero.log | 11 + .../logs/rdna3-wmma-review-mutation-q6.log | 16 + .../logs/rdna3-wmma-review-own-comparison.log | 240 ++++++++ .../review/logs/rdna3-wmma-review-public.log | 13 + .../logs/rdna3-wmma-review-restored-build.log | 4 + .../rdna3-wmma-review-restored-focused.log | 6 + .../rdna3-wmma-review-restored-public.log | 13 + .../review/mmq-corrupt-output.log | 5 + .../review/mmq-finite-output-results.json | 6 + .../review/mmq-input-hash.log | 1 + .../review/mmq-missing-case.log | 1 + .../review/mmq-mutation-results.json | 31 + .../review/mmq-output-dtype.log | 1 + .../review/native-build-provenance.json | 35 ++ .../review/native-output-deduplication.json | 6 + .../review/receipt-manifest.json | 279 +++++++++ .../review/review-report.json | 440 ++++++++++++++ .../review/scalar-control-build.log | 5 + .../review/scalar-control-focused.log | 67 +++ .../review/scalar-control-public.log | 5 + .../review/scalar-control-restoration.json | 4 + .../review/tile-body-identity.json | 12 + 77 files changed, 4367 insertions(+), 2 deletions(-) create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/integration-checks.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-broad.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-receipt.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-arch.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-tests.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/numpy-only-summary.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/summary.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_convert_glm5_next_gguf.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_absolute_reference.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_adherence_detail_loss.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_prompt_adherence.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_render_compare.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/preflight-original-failure.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/receipt.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/operator/role-after-rename.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-restoration.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-admit-unmeasured-gfx11.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-attention-gfx1100.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-ignore-invalid-features.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-mutation-results.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-reject-valid-features.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1100.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1200.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1201.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-unchanged.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-restoration.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-restoration.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-restoration.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/implementation-receipt-audit.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-arch-full.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-configure.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-default.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-scalar.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-hip.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-preflight.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6-zero.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-own-comparison.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-corrupt-output.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-finite-output-results.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-input-hash.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-missing-case.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-mutation-results.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-output-dtype.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-build-provenance.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-output-deduplication.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/receipt-manifest.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/review-report.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-build.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-focused.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-public.log create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-restoration.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/review/tile-body-identity.json diff --git a/.agents/specs/rocm-rdna3-quant-wmma.md b/.agents/specs/rocm-rdna3-quant-wmma.md index b4ead5226..57b80c7cc 100644 --- a/.agents/specs/rocm-rdna3-quant-wmma.md +++ b/.agents/specs/rocm-rdna3-quant-wmma.md @@ -13,7 +13,9 @@ Commit this specification before implementation. G1-G3 on physical gfx1100. Both executing tile bodies remain unchanged. The 240 original primary fixture cases pass with their existing tolerances. The public gate matches every captured logit and completion token against its -scalar control. G4 and fresh review remain with the coordinating operator. +scalar control. Fresh review passes with no findings, and the operator's +independent HIP gate passes with the same five baseline resource skips. +G4 remains with the coordinating operator. [Implementation receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/README.md) record the commands, red-first results, full HIP gate, and mutations. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md b/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md index f06f442ad..12d6e2e1e 100644 --- a/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md @@ -24,7 +24,9 @@ Every GPU invocation held `/home/vikash/gpu.lock` and selected device 0 with | G5 repository preflight | Executed with exit 0 and 12 unchanged skips. The skips remain unavailable checks, rather than passes. | [First](preflight-first.log), [staged](preflight-staged.log) | | G5 implementer mutations | Satisfied. Four CPU policy mutations and four public production mutations fail. The immutable original files retain their hashes. | [CPU mutations](cpu-mutations.json), [production mutations](production-mutations.json) | | G4 full-model correctness and performance | Pending the coordinating operator's model and oracle runs. No throughput, latency, or memory claim is made here. | Owning spec | -| G5 fresh review and operator verification | Pending the coordinating operator's separate receipts. Implementer results do not discharge these obligations. | Owning spec | +| G5 fresh review | Satisfied. Independent review of the immutable implementation passes with no findings. | [Review report](review/review-report.json) | +| G5 operator HIP verification | Satisfied with the same five baseline resource skips. The independent build and all 29 registered tests exit 0. | [Operator receipt](operator/receipt.json) | +| G5 operator repository preflight | Full run exits 1 on branch-role classification. The role check exits 0 after the branch rename. Seven skipped NumPy suites subsequently execute with exit 0. | [Original failure](operator/preflight-original-failure.log), [resolution](operator/role-after-rename.log), [supplement](operator/receipt.json) | The existing physical fixtures preserve the partial four-wave block at `M=32, N=48, K=512`, both output dtypes, joint tails, and separate bottom and @@ -200,3 +202,56 @@ same 12 explicit skips as the first run. It compiles all eight translation units in scope under the default host configuration. [Full staged receipt](preflight-staged.log). The record, symbol-anchor, and staged NOW checks also pass after the evidence and spec updates. + +## Independent review and operator verification + +The fresh reviewer executed the immutable implementation +`c3fe98ba6c55ce71e75746e1b944a27640464e0f` and statically reviewed evidence commit +`c176168cbbdcca700b6346ebb6a1914033b85eda`. The verdict is `PASS`, with no findings. +The review's broad HIP run executes 24 tests and skips the same five baseline +resource cases. Its full preflight exits 0 with the same 12 explicit skips. +The reviewer independently captures all 240 original MMQ cases and reproduces +the exact public logits and completion tokens. + +The reviewer mutates seven architecture policies, five MMQ guarantees, admission, +both production launch sites, and the scalar override. Every intended defect +fails its gate. The additional Q6_K mutation writes finite zeros while retaining +the counter, and the public token comparison fails. Source hashes match the +immutable implementation after restoration. The [review report](review/review-report.json) +records commands, exits, scratch harness corrections, and remaining obligations. +The [receipt manifest](review/receipt-manifest.json) seals the bounded log copies and records whitespace-only copy adaptations. +Full ISA and raw matrices remain at their recorded source locations. + +The operator separately builds Release binaries in +`/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator`. +The architecture suite passes 16 cases and 109 assertions. +The broad HIP gate exits 0 in 34.00 seconds, with 29 registered tests and the +same five baseline resource skips. The [operator receipt](operator/receipt.json) +seals build, binary, baseline, and candidate evidence. Its target recipe is a +reconstruction from CMakeCache and CTest registration. The original complete +build argument list was not retained. + +The operator's full preflight exits 1 on two invocations of the same role +checker. Its `codex/rdna3-wmma-coordinator` branch made the checker treat pending +task content as landed content. Renaming that branch to +`row/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3-coordinator` makes the role check exit 0. +The checker and product files remain unchanged. The full preflight was not +rerun after the rename. Both the original failure and scoped resolution remain +in the evidence. + +The operator subsequently runs all seven NumPy suites that the full preflight +skips. The existing virtual environment initially causes two Qwen suite +failures because its installed vLLM metadata conflicts with the fixture runtime. +The isolated rerun exposes only existing NumPy and `numpy.libs` through +`PYTHONPATH`, using `/usr/bin/python3`. The Qwen tools suite passes 17 cases, +and the outputs suite passes 32 cases. All seven suites exit 0 without package, +checker, or repository changes. The [initial results](operator/numpy-suites/summary.json) +and [isolated reruns](operator/numpy-suites/numpy-only-summary.json) preserve +both dispositions. The original preflight's skipped results remain unchanged. + +The prompt-adherence suite still skips five real-checkpoint subcases because +`VT_LTX25_ADHERENCE_MODEL` is unset. The [operator receipt](operator/receipt.json) +names each case. Four argument-dependent checks concern unchanged ARM, CPU, +CUDA, and Triton build surfaces. They are outside this HIP admission change. +The fifth, PR size, remains pending the final integrated diff. +G4 model correctness and measurements remain pending with the operator. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/integration-checks.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/integration-checks.json new file mode 100644 index 000000000..796d66e2c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/integration-checks.json @@ -0,0 +1,49 @@ +{ + "scope": "Records-only integration of operator and independent review evidence. Product files remain byte-identical to c3fe98ba6. Prior complete implementation and reviewer preflight receipts cover unchanged executable content.", + "commands": [ + { + "command": "git diff --cached --check", + "exit": 0 + }, + { + "command": "git diff --exit-code c3fe98ba6c55ce71e75746e1b944a27640464e0f -- include src tests tools", + "exit": 0 + }, + { + "command": "python3 scripts/check-agent-record.py", + "exit": 0 + }, + { + "command": "python3 scripts/check-symbol-anchors.py", + "exit": 0 + }, + { + "command": "python3 scripts/check-now-current.py --staged", + "exit": 0 + }, + { + "command": "python3 scripts/check-role-discipline.py", + "exit": 0 + } + ], + "receipt_seal_checks": [ + { + "manifest": "operator/receipt.json", + "checked_files": 19, + "exit": 0 + }, + { + "manifest": "review/receipt-manifest.json", + "checked_files": 53, + "exit": 0 + } + ], + "full_preflight_repeated_for_records_only_delta": false, + "GPU_commands": 0, + "remote_writes": 0, + "pending": [ + "G4 operator model correctness and measurements", + "PR-size gate against final integrated diff" + ], + "copy_adaptations": "Three reviewer logs remove trailing whitespace and trailing blank lines. The review manifest records both original source and copied byte hashes." +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-broad.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-broad.log new file mode 100644 index 000000000..294dcd55b --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-broad.log @@ -0,0 +1,69 @@ +Internal ctest changing into directory: /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator +Test project /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator + Start 111: test_rocm_moe_bf16 + 1/28 Test #111: test_rocm_moe_bf16 ..............................***Skipped 0.32 sec + Start 512: test_backend_cross_device + 2/28 Test #512: test_backend_cross_device ....................... Passed 4.79 sec + Start 513: test_backend_cross_device_vt_attn_decode_d128 + 3/28 Test #513: test_backend_cross_device_vt_attn_decode_d128 ... Passed 0.28 sec + Start 514: test_rocm_arch + 4/28 Test #514: test_rocm_arch .................................. Passed 0.19 sec + Start 515: test_rocm_pinned_h2d + 5/28 Test #515: test_rocm_pinned_h2d ............................ Passed 0.19 sec + Start 516: test_rocm_f16_contract + 6/28 Test #516: test_rocm_f16_contract .......................... Passed 0.19 sec + Start 518: test_rocm_norm_quant_bridge + 7/28 Test #518: test_rocm_norm_quant_bridge ..................... Passed 0.19 sec + Start 519: test_rocm_quant_dot + 8/28 Test #519: test_rocm_quant_dot ............................. Passed 1.89 sec + Start 524: test_rocm_backend + 9/28 Test #524: test_rocm_backend ............................... Passed 0.73 sec + Start 525: test_rocm_attn_gate_split +10/28 Test #525: test_rocm_attn_gate_split ....................... Passed 0.46 sec + Start 526: test_rocm_attn_gate_split_device_binding +11/28 Test #526: test_rocm_attn_gate_split_device_binding ........***Skipped 0.19 sec + Start 527: test_rocm_attn_gate_split_large_index +12/28 Test #527: test_rocm_attn_gate_split_large_index ........... Passed 0.36 sec + Start 528: test_rocm_f16_weights +13/28 Test #528: test_rocm_f16_weights ........................... Passed 1.30 sec + Start 529: test_rocm_f16_graph_dedup +14/28 Test #529: test_rocm_f16_graph_dedup ....................... Passed 0.68 sec + Start 530: test_rocm_f16_device +15/28 Test #530: test_rocm_f16_device ............................***Skipped 0.19 sec + Start 531: test_rocm_f16_model +16/28 Test #531: test_rocm_f16_model .............................***Skipped 0.19 sec + Start 532: test_rocm_fp8_kv_cache +17/28 Test #532: test_rocm_fp8_kv_cache .......................... Passed 0.38 sec + Start 533: test_ops_rocm_silu_rounding +18/28 Test #533: test_ops_rocm_silu_rounding ..................... Passed 0.30 sec + Start 554: test_exl3_rocm +19/28 Test #554: test_exl3_rocm .................................. Passed 0.43 sec + Start 567: test_capi_rocm_embedding_quant +20/28 Test #567: test_capi_rocm_embedding_quant .................. Passed 6.92 sec + Start 568: test_rocm_embedding_quant +21/28 Test #568: test_rocm_embedding_quant ....................... Passed 10.18 sec + Start 615: test_rocm_moe_grouped_bf16 +22/28 Test #615: test_rocm_moe_grouped_bf16 ...................... Passed 0.41 sec + Start 616: test_rocm_moe_upstream +23/28 Test #616: test_rocm_moe_upstream ..........................***Skipped 0.19 sec + Start 618: test_rocm_moe_reference_set +24/28 Test #618: test_rocm_moe_reference_set ..................... Passed 0.19 sec + Start 677: test_rocm_sample_scratch +25/28 Test #677: test_rocm_sample_scratch ........................ Passed 0.48 sec + Start 678: test_gemma4_rocm_fp8_seams +26/28 Test #678: test_gemma4_rocm_fp8_seams ...................... Passed 0.19 sec + Start 753: test_rocm_qwen35_moe_kq_device +27/28 Test #753: test_rocm_qwen35_moe_kq_device .................. Passed 0.78 sec + Start 759: test_qwen4_exp_rocm_reductions +28/28 Test #759: test_qwen4_exp_rocm_reductions .................. Passed 1.12 sec + +100% tests passed, 0 tests failed out of 28 + +Total Test time (real) = 33.71 sec + +The following tests did not run: + 111 - test_rocm_moe_bf16 (Skipped) + 526 - test_rocm_attn_gate_split_device_binding (Skipped) + 530 - test_rocm_f16_device (Skipped) + 531 - test_rocm_f16_model (Skipped) + 616 - test_rocm_moe_upstream (Skipped) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-focused.log new file mode 100644 index 000000000..d83a61d1c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-focused.log @@ -0,0 +1,12 @@ +Internal ctest changing into directory: /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator +Test project /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator + Start 512: test_backend_cross_device +1/3 Test #512: test_backend_cross_device ........ Passed 4.90 sec + Start 514: test_rocm_arch +2/3 Test #514: test_rocm_arch ................... Passed 0.19 sec + Start 519: test_rocm_quant_dot +3/3 Test #519: test_rocm_quant_dot .............. Passed 1.63 sec + +100% tests passed, 0 tests failed out of 3 + +Total Test time (real) = 6.73 sec diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-receipt.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-receipt.json new file mode 100644 index 000000000..d049d460f --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/baseline-receipt.json @@ -0,0 +1,22 @@ +{ + "date": "2026-09-14T04:18:59.204093+00:00", + "source_base": "cef9f821632eb33156bb7d24a0a85eeab7f7484a", + "head": "a5b5c92f2604386fcf162d5e12a42988f412db3b", + "gpu_lock": "/home/vikash/gpu.lock", + "hip_visible_devices": "0", + "rocr_visible_devices": "0", + "sha256": { + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/CMakeCache.txt": "954c83c11c4af88e1ba503b1190cdc3da89051fde30abf1d7f32afff2a55ca01", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/libvllm.so.0.0.3": "8e167de4c2bbb9208db909757f79fed9540b3b666f2e96ae484a065d8cc0f37d", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench": "d31a547825e436ff4f9e49683aeea6c599c60e8def2470aa37e27fee42cc6e98", + "/opt/rocm/core-10.0/include/rocwmma/internal/wmma_impl.hpp": "ae8d7771d037979371e6029b7e4b1627cdeb5a53d300ca65371bf1731aea8688", + "/opt/rocm/core-10.0/include/rocwmma/internal/io_layout.hpp": "f8782f48bb17b3405465f9b7c002628dfea37a37124be2b9e40d29eb7ab31635", + "/opt/rocm/core-10.0/include/rocwmma/internal/mma_config.hpp": "b746e3f83824b5723aa0889f897ee9f38f367bc630087670dfdcb0775e5193c0", + "/opt/rocm/core-10.0/include/rocwmma/internal/config.hpp": "9015b7f60ac362ba8e3cb31a7659846046961ba51a7dc0abc4a071709670c055" + }, + "baseline_tests": { + "focused": "3 of 3 pass,6.73s", + "broad": "28 registered,23 executed,5 skipped,exit0,33.71s" + }, + "preflight": "Only failing suite test_agent_onboard also fails pristine baseline and passes39tests with GIT_CONFIG_GLOBAL=/dev/null;12 unrelated skips reported" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-arch.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-arch.log new file mode 100644 index 000000000..f90542355 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-arch.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 16 | 16 passed | 0 failed | 0 skipped +[doctest] assertions: 109 | 109 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-build.log new file mode 100644 index 000000000..9e7d75c68 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-build.log @@ -0,0 +1,22 @@ +[0/1] Re-running CMake... +-- ROCm backend: ENABLED for arch(es) [gfx1100] +-- ROCm backend: NEVER COMPILED UPSTREAM OF YOU — this skeleton has no build report from any machine. Please report success or failure on https://github.com/mudler/vllm.cpp/issues/41 +-- Triton AOT: default OFF — the vendored artifacts are CUDA cubins and VLLM_CPP_CUDA is OFF +-- ROCm hipBLAS: /opt/rocm/lib/libhipblas.so +-- ROCm hipBLASLt: /opt/rocm/lib/libhipblaslt.so +-- HuggingFace download: HTTPS through OpenSSL 3.0.13 (system, dynamic) +-- CUDA FA2 compiled-arch manifest: [] +-- Configuring done (0.4s) +-- Generating done (1.1s) +-- Build files have been written to: /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator +[1/11] Building CXX object tests/CMakeFiles/test_rocm_arch.dir/vt/test_rocm_arch.cpp.o +[2/11] Building CXX object tests/CMakeFiles/test_capi_rocm_quant_wmma.dir/capi/test_rocm_quant_wmma.cpp.o +[3/11] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[4/11] Linking HIP static library libvllm.a +[5/11] Linking HIP executable tests/test_rocm_quant_dot +[6/11] Linking HIP executable tests/test_rocm_arch +[7/11] Linking HIP executable tests/test_capi_rocm_quant_wmma +[8/11] Linking HIP executable examples/vllm-bench +[9/11] Linking HIP executable examples/quant-gemm-bench +[10/11] Building CXX object tests/CMakeFiles/test_backend_cross_device.dir/vt/test_backend_cross_device.cpp.o +[11/11] Linking HIP executable tests/test_backend_cross_device diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-tests.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-tests.log new file mode 100644 index 000000000..a092d520a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/candidate-tests.log @@ -0,0 +1,71 @@ +Internal ctest changing into directory: /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator +Test project /home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator + Start 111: test_rocm_moe_bf16 + 1/29 Test #111: test_rocm_moe_bf16 ..............................***Skipped 0.31 sec + Start 512: test_backend_cross_device + 2/29 Test #512: test_backend_cross_device ....................... Passed 4.81 sec + Start 513: test_backend_cross_device_vt_attn_decode_d128 + 3/29 Test #513: test_backend_cross_device_vt_attn_decode_d128 ... Passed 0.28 sec + Start 514: test_rocm_arch + 4/29 Test #514: test_rocm_arch .................................. Passed 0.18 sec + Start 515: test_rocm_pinned_h2d + 5/29 Test #515: test_rocm_pinned_h2d ............................ Passed 0.19 sec + Start 516: test_rocm_f16_contract + 6/29 Test #516: test_rocm_f16_contract .......................... Passed 0.19 sec + Start 518: test_rocm_norm_quant_bridge + 7/29 Test #518: test_rocm_norm_quant_bridge ..................... Passed 0.18 sec + Start 519: test_rocm_quant_dot + 8/29 Test #519: test_rocm_quant_dot ............................. Passed 1.39 sec + Start 524: test_rocm_backend + 9/29 Test #524: test_rocm_backend ............................... Passed 0.73 sec + Start 525: test_rocm_attn_gate_split +10/29 Test #525: test_rocm_attn_gate_split ....................... Passed 0.47 sec + Start 526: test_rocm_attn_gate_split_device_binding +11/29 Test #526: test_rocm_attn_gate_split_device_binding ........***Skipped 0.19 sec + Start 527: test_rocm_attn_gate_split_large_index +12/29 Test #527: test_rocm_attn_gate_split_large_index ........... Passed 0.36 sec + Start 528: test_rocm_f16_weights +13/29 Test #528: test_rocm_f16_weights ........................... Passed 1.28 sec + Start 529: test_rocm_f16_graph_dedup +14/29 Test #529: test_rocm_f16_graph_dedup ....................... Passed 0.64 sec + Start 530: test_rocm_f16_device +15/29 Test #530: test_rocm_f16_device ............................***Skipped 0.18 sec + Start 531: test_rocm_f16_model +16/29 Test #531: test_rocm_f16_model .............................***Skipped 0.19 sec + Start 532: test_rocm_fp8_kv_cache +17/29 Test #532: test_rocm_fp8_kv_cache .......................... Passed 0.38 sec + Start 533: test_ops_rocm_silu_rounding +18/29 Test #533: test_ops_rocm_silu_rounding ..................... Passed 0.30 sec + Start 554: test_exl3_rocm +19/29 Test #554: test_exl3_rocm .................................. Passed 0.42 sec + Start 567: test_capi_rocm_embedding_quant +20/29 Test #567: test_capi_rocm_embedding_quant .................. Passed 6.81 sec + Start 568: test_capi_rocm_quant_wmma +21/29 Test #568: test_capi_rocm_quant_wmma ....................... Passed 1.36 sec + Start 569: test_rocm_embedding_quant +22/29 Test #569: test_rocm_embedding_quant ....................... Passed 9.88 sec + Start 616: test_rocm_moe_grouped_bf16 +23/29 Test #616: test_rocm_moe_grouped_bf16 ...................... Passed 0.40 sec + Start 617: test_rocm_moe_upstream +24/29 Test #617: test_rocm_moe_upstream ..........................***Skipped 0.18 sec + Start 619: test_rocm_moe_reference_set +25/29 Test #619: test_rocm_moe_reference_set ..................... Passed 0.18 sec + Start 678: test_rocm_sample_scratch +26/29 Test #678: test_rocm_sample_scratch ........................ Passed 0.46 sec + Start 679: test_gemma4_rocm_fp8_seams +27/29 Test #679: test_gemma4_rocm_fp8_seams ...................... Passed 0.18 sec + Start 754: test_rocm_qwen35_moe_kq_device +28/29 Test #754: test_rocm_qwen35_moe_kq_device .................. Passed 0.77 sec + Start 760: test_qwen4_exp_rocm_reductions +29/29 Test #760: test_qwen4_exp_rocm_reductions .................. Passed 1.08 sec + +100% tests passed, 0 tests failed out of 29 + +Total Test time (real) = 34.00 sec + +The following tests did not run: + 111 - test_rocm_moe_bf16 (Skipped) + 526 - test_rocm_attn_gate_split_device_binding (Skipped) + 530 - test_rocm_f16_device (Skipped) + 531 - test_rocm_f16_model (Skipped) + 617 - test_rocm_moe_upstream (Skipped) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/numpy-only-summary.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/numpy-only-summary.json new file mode 100644 index 000000000..ced93bd6d --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/numpy-only-summary.json @@ -0,0 +1,10 @@ +[ + { + "suite": "test_qwen3_capture_tools", + "exit_code": 0 + }, + { + "suite": "test_qwen3_capture_outputs", + "exit_code": 0 + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/summary.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/summary.json new file mode 100644 index 000000000..a638327fd --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/summary.json @@ -0,0 +1,30 @@ +[ + { + "suite": "test_qwen3_capture_tools", + "exit_code": 1 + }, + { + "suite": "test_qwen3_capture_outputs", + "exit_code": 1 + }, + { + "suite": "test_ltx25_render_compare", + "exit_code": 0 + }, + { + "suite": "test_ltx25_absolute_reference", + "exit_code": 0 + }, + { + "suite": "test_ltx25_prompt_adherence", + "exit_code": 0 + }, + { + "suite": "test_ltx25_adherence_detail_loss", + "exit_code": 0 + }, + { + "suite": "test_convert_glm5_next_gguf", + "exit_code": 0 + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_convert_glm5_next_gguf.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_convert_glm5_next_gguf.log new file mode 100644 index 000000000..021617647 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_convert_glm5_next_gguf.log @@ -0,0 +1,108 @@ +case: k-quant encoders are BYTE-IDENTICAL to llama.cpp b10451 + ok Q2_K matches the pinned reference byte-for-byte (504 bytes) + ok Q6_K matches the pinned reference byte-for-byte (1260 bytes) + ok Q8_0 matches the pinned reference byte-for-byte (1632 bytes) + ok the golden names the pin it was captured at (b10451), not `master` + +case: the C++ name map equals the converter's, table for table + ok Glm5NextCommonTensorMap: parsed 8 entries from the C++ TU + ok Glm5NextCommonTensorMap: 8 entries identical to the converter's + ok Glm5NextKdaTensorMap: parsed 15 entries from the C++ TU + ok Glm5NextKdaTensorMap: 15 entries identical to the converter's + ok Glm5NextDsaTensorMap: parsed 13 entries from the C++ TU + ok Glm5NextDsaTensorMap: 13 entries identical to the converter's + ok Glm5NextMlaKvBSplitTensorMap: parsed 2 entries from the C++ TU + ok Glm5NextMlaKvBSplitTensorMap: 2 entries identical to the converter's + ok Glm5NextDenseMlpTensorMap: parsed 3 entries from the C++ TU + ok Glm5NextDenseMlpTensorMap: 3 entries identical to the converter's + ok Glm5NextSparseMlpTensorMap: parsed 5 entries from the C++ TU + ok Glm5NextSparseMlpTensorMap: 5 entries identical to the converter's + ok Glm5NextVisionTensorMap: parsed 11 entries from the C++ TU + ok Glm5NextVisionTensorMap: 11 entries identical to the converter's + ok Glm5NextVisionBlockTensorMap: parsed 14 entries from the C++ TU + ok Glm5NextVisionBlockTensorMap: 14 entries identical to the converter's + ok Glm5NextStackedExpertTensorMap: 3 stacked expert tensors identical + ok kGlm5NextGgufArch == ARCH == 'glm5next' +case: the converter emits a well-formed glm5next GGUF + ok q2_k conversion exits 0 (rc=0) + + ok GGUF version is 3 + ok general.architecture is `glm5next` + ok block_count is 4 + ok general.file_type is the UINT32 `llama_ftype` MOSTLY_Q2_K = 10, not a string, and the arm name travels beside it +case: the metadata carries the parameters the port hinges on + ok `glm5next.kda.gate_lower_bound` is -5.0 -- the value that selects the sigmoid forget-gate branch over Kimi-Linear's softplus one + ok `glm5next.kda.head_dim` is carried + ok the fixture DISTINGUISHES the two conventions (kv_lora_rank 128 vs qk_nope_head_dim 64) + ok `attention.key_length` is `kv_lora_rank + qk_rope_head_dim`, llama.cpp's meaning of the name (deepseek.py:345) + ok `attention.value_length` is `kv_lora_rank` (deepseek.py:346) + ok the `_mla` pair still carries the PER-HEAD query geometry: `qk_nope_head_dim + qk_rope_head_dim` and `v_head_dim` (deepseek.py:347-348) + ok the KDA head count travels in BOTH spellings -- ours and llama.cpp's ssm.* (conversion/glm5next.py:78-80 at PR 27752) -- so either reader can load this file + ok the short-conv kernel size is carried + ok `indexer.kpool` is 4, the CHECKPOINT value, not the config class default of 16 + ok `indexer.top_k` is 2048 + ok mHC stream count is carried + ok `hc_eps` is 1e-6 and is a DIFFERENT constant from rms_norm_eps 1e-5 + ok `rms_norm_eps` is 1e-5 + ok the AUTHORITATIVE per-layer schedule is carried as `layer_types` + ok no rope frequency is written: the text stack is NoPE end to end + ok MoE routing width is carried + ok the clamped-SwiGLU limit is carried + ok both multimodal token ids travel together +case: the tensor set is exactly what the topology generates + ok tensor set matches (161 expected). missing=[] extra=[] +case: the MTP block is dropped, following the reference + ok no `blk.4.*` tensor survives (found []) + ok no MTP-only tensor (`enorm`, `hnorm`, `eh_proj`, `shared_head`) survives +case: the 288-expert lane is STACKED, not one tensor per expert + ok layer 1 ffn_gate_exps is [ne0=256, ne1=256, ne2=4 experts] + ok no per-expert tensor name leaks into the file +case: the q2_k arm puts the EXPERTS at Q2_K and the rest at Q6_K + ok all 9 stacked expert tensors are Q2_K + ok a non-expert 2-D weight is Q6_K + ok a 1-D norm stays F32 rather than being quantized + ok `ssm_a` (A_log) stays F32 +case: a row that does not divide the block STEPS DOWN rather than being reshaped + ok the k-pool positional embedding (ne0=64, not a multiple of 256) steps down to Q8_0, whose block is 32 + ok the depthwise conv kernel (ne0=4 divides neither 256 nor 32) falls all the way to F32 +case: a convolution kernel with more axes than ggml carries is flattened, not written + ok the 5-D patch-embed kernel is flattened to [1176, 128] rather than written with five axes + ok the flattened patch-embed row (1176) divides neither 256 nor 32, so it lands at F32 + ok the 4-D downsample kernel is flattened to a row that DOES divide 256 and is quantized rather than dumped at F32 + ok no tensor in the file carries more than ggml's 4 axes + ok 3-D shapes are NOT flattened: the depthwise conv stays [k, 1, ch] and the expert lane stays [m, n, experts], because ggml indexes both +case: the MLA `kv_b_proj` is SPLIT, and its k half is TRANSPOSED + ok attn_k_b is ne [qk_nope=64, kv_lora=128, heads=4] -- the TRANSPOSED half + ok attn_v_b is ne [kv_lora=128, v_head=64, heads=4] -- the untransposed half + ok the fused `attn_kv_b.weight` is NOT written: no reader of this architecture expects one +case: FP8 e4m3 block dequant and bf16 widening reach the file intact + ok an F32-carried bf16 norm is bit-exact + ok an FP8 e4m3 block-quantized MLA projection round-trips through Q6_K within 2% (max rel 0.0176) + ok the stacked expert lane round-trips through Q2_K (max rel 0.3107) + ok every expert slab is nearest its OWN expert: the lane is in expert order, not permuted +case: `ssm_a` holds -exp(A_log), and the split halves hold the right slices + ok `ssm_a` is -exp(A_log) exactly, not A_log + ok -exp(A_log) differs from A_log on this fixture, so the check above can fail + ok every `ssm_a` entry is strictly negative, which is what makes `log(-x)` defined on the loader side + ok blk.2.attn_k_b.weight carries its own half of `kv_b_proj` (max rel 0.0040) + ok blk.2.attn_v_b.weight carries its own half of `kv_b_proj` (max rel 0.0040) + ok attn_k_b is nearer the K half than the V half: the two are not swapped +case: an unimplemented arm is REFUSED by name + ok --arm iq2_xxs is refused and names the missing part (imatrix) and why it is unreachable here + ok --arm iq1_s is refused and names the missing part (imatrix) and why it is unreachable here + ok --arm iq2_s is refused and names the missing part (imatrix) and why it is unreachable here + ok --arm q4_k is refused and names the unported encoder + ok --arm q3_k is refused and names the unported encoder + ok --keep-mtp is refused and names the owed item that would carry it +case: a checkpoint of another architecture is REFUSED, not converted + ok a non-glm5_next config is refused by name +case: an FP8 tensor with no scale companion is REFUSED, not guessed + ok a missing `weight_scale_inv` is refused rather than treated as 1.0 +case: --dry-run reports the arm's size without writing a byte + ok --dry-run --arm q2_k exits 0 + ok --dry-run --arm q6_k exits 0 + ok --dry-run --arm q8_0 exits 0 + ok the arms order by size q2_k < q6_k < q8_0 (4720672 < 5881888 < 7240184) + ok --dry-run writes nothing into the source directory + +All cases passed. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_absolute_reference.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_absolute_reference.log new file mode 100644 index 000000000..3625a7b81 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_absolute_reference.log @@ -0,0 +1,42 @@ +test_a_reference_changes_no_arm_to_arm_check (__main__.OneRenderOrTwo.test_a_reference_changes_no_arm_to_arm_check) +#1743's checks keep their names, their values and their verdicts. ... ok +test_with_b_and_a_reference_both_arms_are_judged (__main__.OneRenderOrTwo.test_with_b_and_a_reference_both_arms_are_judged) ... ok +test_without_a_reference_nothing_absolute_is_checked (__main__.OneRenderOrTwo.test_without_a_reference_nothing_absolute_is_checked) +#1854 as filed, and it must stay reachable: no reference, no gate, and ... ok +test_without_b_no_identity_alignment_or_coherence_check_is_emitted (__main__.OneRenderOrTwo.test_without_b_no_identity_alignment_or_coherence_check_is_emitted) +The single-render path must not report a relative verdict it never ... ok +test_a_control_without_b_is_refused_rather_than_ignored (__main__.ReferenceIdentity.test_a_control_without_b_is_refused_rather_than_ignored) +`--control` calibrates a delta between two arms. With no arm B there is ... ok +test_a_reference_whose_digest_is_absent_is_refused_and_never_compared (__main__.ReferenceIdentity.test_a_reference_whose_digest_is_absent_is_refused_and_never_compared) +A reference a caller can point anywhere is not a reference. ... ok +test_an_empty_digest_list_anchors_nothing_and_is_refused (__main__.ReferenceIdentity.test_an_empty_digest_list_anchors_nothing_and_is_refused) ... ok +test_neither_b_nor_reference_is_refused_by_the_parser (__main__.ReferenceIdentity.test_neither_b_nor_reference_is_refused_by_the_parser) ... ok +test_one_tampered_frame_is_enough_to_refuse_the_whole_reference (__main__.ReferenceIdentity.test_one_tampered_frame_is_enough_to_refuse_the_whole_reference) +Every frame's digest is checked, not the first or a sample of them. ... ok +test_a_different_reference_moves_the_bound (__main__.TheBoundIsTheReference.test_a_different_reference_moves_the_bound) +The proof that the bound is READ rather than stored. Two references, ... ok +test_the_ENFORCED_bound_moves_with_the_reference_not_only_the_reported_one (__main__.TheBoundIsTheReference.test_the_ENFORCED_bound_moves_with_the_reference_not_only_the_reported_one) +THE HOLE A MUTATION FOUND, and the case that closes it. ... ok +test_the_reported_bound_equals_the_references_own_per_frame_maximum (__main__.TheBoundIsTheReference.test_the_reported_bound_equals_the_references_own_per_frame_maximum) +Computed here from the reference's pixels, with the tool's own ... ok +test_only_blockiness_gates_and_the_rest_say_they_do_not (__main__.TheCommittedReference.test_only_blockiness_gates_and_the_rest_say_they_do_not) +The panel must keep declaring which half decides anything. #1854 ... ok +test_the_committed_mp4_is_admitted_by_the_default_digest_list (__main__.TheCommittedReference.test_the_committed_mp4_is_admitted_by_the_default_digest_list) ... ok +test_the_default_digest_list_resolves_from_the_script_itself (__main__.TheCommittedReference.test_the_default_digest_list_resolves_from_the_script_itself) +No ffmpeg needed. The path is built from the tool's own location, the ... ok +test_a_block_flattened_render_fails_and_the_run_exits_one (__main__.TheGateFires.test_a_block_flattened_render_fails_and_the_run_exits_one) +THE CASE THE WHOLE ROW IS FOR. Same fixtures, same reference, one ... ok +test_a_clean_render_passes_both_blockiness_checks (__main__.TheGateFires.test_a_clean_render_passes_both_blockiness_checks) ... ok +test_a_degenerate_REFERENCE_is_refused_rather_than_used (__main__.TheGateFires.test_a_degenerate_REFERENCE_is_refused_rather_than_used) +The instrument's own precondition. A reference whose bands collapsed ... ok +test_a_degenerate_render_fails_C0_before_any_bound_is_read (__main__.TheGateFires.test_a_degenerate_render_fails_C0_before_any_bound_is_read) +A blank clip has no off-grid step either, so its blockiness number is ... ok +test_a_pure_noise_render_PASSES_and_that_is_the_gates_limit (__main__.TheGateFires.test_a_pure_noise_render_PASSES_and_that_is_the_gates_limit) +THE LIMIT, WRITTEN AS A TEST RATHER THAN AS A PARAGRAPH. ... ok +test_the_fully_flattened_render_fails_the_DEFINEDNESS_check (__main__.TheGateFires.test_the_fully_flattened_render_fails_the_DEFINEDNESS_check) +THE MUTE SWITCH THE GUARD EXISTS TO CLOSE. ... ok + +---------------------------------------------------------------------- +Ran 21 tests in 3.843s + +OK diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_adherence_detail_loss.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_adherence_detail_loss.log new file mode 100644 index 000000000..f7d0fc084 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_adherence_detail_loss.log @@ -0,0 +1,61 @@ +test_S0_AND_the_arm_check_are_the_SAME_predicate (__main__.ArmValidity.test_S0_AND_the_arm_check_are_the_SAME_predicate) ... ok +test_a_separating_arm_is_valid_and_reports_its_margin (__main__.ArmValidity.test_a_separating_arm_is_valid_and_reports_its_margin) ... ok +test_a_zero_margin_arm_is_INVALID_even_though_it_has_an_argmax (__main__.ArmValidity.test_a_zero_margin_arm_is_INVALID_even_though_it_has_an_argmax) ... ok +test_an_arm_whose_decoy_outranks_the_true_prompt_is_INVALID (__main__.ArmValidity.test_an_arm_whose_decoy_outranks_the_true_prompt_is_INVALID) ... ok +test_a_mid_band_sinusoid_lands_in_the_mid_share_and_not_the_high_one (__main__.Bands.test_a_mid_band_sinusoid_lands_in_the_mid_share_and_not_the_high_one) ... ok +test_a_smooth_image_with_broadband_content_has_no_axis_excess (__main__.Bands.test_a_smooth_image_with_broadband_content_has_no_axis_excess) ... ok +test_an_axis_aligned_nyquist_pattern_beats_its_own_radial_ring (__main__.Bands.test_an_axis_aligned_nyquist_pattern_beats_its_own_radial_ring) ... ok +test_static_detail_churns_far_less_than_per_frame_grain (__main__.Bands.test_static_detail_churns_far_less_than_per_frame_grain) ... ok +test_the_axis_probe_SEPARATES_a_lattice_pattern_from_ordinary_texture (__main__.Bands.test_the_axis_probe_SEPARATES_a_lattice_pattern_from_ordinary_texture) ... ok +test_a_constant_input_returns_nan_and_never_zero (__main__.Correlation.test_a_constant_input_returns_nan_and_never_zero) ... ok +test_a_planted_negative_association_is_recovered_with_its_SIGN (__main__.Correlation.test_a_planted_negative_association_is_recovered_with_its_SIGN) ... ok +test_a_planted_positive_association_is_recovered (__main__.Correlation.test_a_planted_positive_association_is_recovered) ... ok +test_spearman_sees_a_monotone_relation_pearson_understates (__main__.Correlation.test_spearman_sees_a_monotone_relation_pearson_understates) ... ok +test_a_reference_frame_whose_digest_is_absent_is_unidentified (__main__.IdentityRefusals.test_a_reference_frame_whose_digest_is_absent_is_unidentified) ... ok +test_a_wrong_set_is_refused_and_names_the_recorded_digest (__main__.IdentityRefusals.test_a_wrong_set_is_refused_and_names_the_recorded_digest) ... ok +test_one_flipped_byte_in_one_frame_is_refused (__main__.IdentityRefusals.test_one_flipped_byte_in_one_frame_is_refused) ... ok +test_the_recorded_digest_is_the_concatenated_form_and_not_a_hash_of_bytes (__main__.IdentityRefusals.test_the_recorded_digest_is_the_concatenated_form_and_not_a_hash_of_bytes) ... ok +test_a_zero_sigma_blur_is_the_identity_and_not_a_quiet_copy (__main__.Interventions.test_a_zero_sigma_blur_is_the_identity_and_not_a_quiet_copy) ... ok +test_the_blur_lowers_the_sharpness_statistic_monotonically (__main__.Interventions.test_the_blur_lowers_the_sharpness_statistic_monotonically) ... ok +test_the_blur_stays_inside_the_representable_range (__main__.Interventions.test_the_blur_stays_inside_the_representable_range) ... ok +test_the_unsharp_raises_the_sharpness_statistic (__main__.Interventions.test_the_unsharp_raises_the_sharpness_statistic) ... ok +test_an_already_periodic_image_is_left_alone (__main__.PeriodicDecomposition.test_an_already_periodic_image_is_left_alone) ... ok +test_it_changes_the_high_band_share_on_a_frame_with_a_wrap_step (__main__.PeriodicDecomposition.test_it_changes_the_high_band_share_on_a_frame_with_a_wrap_step) ... ok +test_radial_power_rejects_nothing_and_the_conventions_differ (__main__.PeriodicDecomposition.test_radial_power_rejects_nothing_and_the_conventions_differ) ... ok +test_the_periodic_component_removes_the_wrap_step (__main__.PeriodicDecomposition.test_the_periodic_component_removes_the_wrap_step) ... ok +test_the_wrap_statistic_ranks_a_cliff_above_a_seamless_frame (__main__.PeriodicDecomposition.test_the_wrap_statistic_ranks_a_cliff_above_a_seamless_frame) ... ok +test_a_pure_sinusoid_lands_in_the_bin_that_names_its_frequency (__main__.Spectrum.test_a_pure_sinusoid_lands_in_the_bin_that_names_its_frequency) ... ok +test_blurring_moves_high_frequency_energy_DOWN (__main__.Spectrum.test_blurring_moves_high_frequency_energy_DOWN) ... ok +test_the_crossover_of_a_uniformly_scaled_copy_is_the_first_bin (__main__.Spectrum.test_the_crossover_of_a_uniformly_scaled_copy_is_the_first_bin) ... ok +test_the_dc_term_is_not_reported_as_signal (__main__.Spectrum.test_the_dc_term_is_not_reported_as_signal) ... ok +test_the_inset_is_a_TILE_STEP_and_not_merely_nonzero (__main__.Spectrum.test_the_inset_is_a_TILE_STEP_and_not_merely_nonzero) ... ok +test_the_periodic_counter_term_is_real_and_scales_with_the_boundary (__main__.Spectrum.test_the_periodic_counter_term_is_real_and_scales_with_the_boundary) ... ok +test_welch_never_sees_the_frame_border (__main__.Spectrum.test_welch_never_sees_the_frame_border) ... ok +test_welch_refuses_a_frame_too_small_to_hold_an_interior_tile (__main__.Spectrum.test_welch_refuses_a_frame_too_small_to_hold_an_interior_tile) ... ok +test_our_own_blur_sweep_FAILS_the_precondition_above_sigma_0_3 (__main__.TheCommittedGoldenIsREAD.test_our_own_blur_sweep_FAILS_the_precondition_above_sigma_0_3) ... ok +test_the_absolute_band_powers_the_records_publish (__main__.TheCommittedGoldenIsREAD.test_the_absolute_band_powers_the_records_publish) ... ok +test_the_axis_to_ring_figures_that_withdrew_the_upsampler_lead (__main__.TheCommittedGoldenIsREAD.test_the_axis_to_ring_figures_that_withdrew_the_upsampler_lead) ... ok +test_the_crossover_and_the_wrap_step_the_correction_cites (__main__.TheCommittedGoldenIsREAD.test_the_crossover_and_the_wrap_step_the_correction_cites) ... ok +test_the_four_convention_band_deltas (__main__.TheCommittedGoldenIsREAD.test_the_four_convention_band_deltas) ... ok +test_the_four_estimators_agree_about_OURS_and_NOT_about_the_reference (__main__.TheCommittedGoldenIsREAD.test_the_four_estimators_agree_about_OURS_and_NOT_about_the_reference) ... ok +test_the_reference_blur_sweep_HOLDS_the_precondition_throughout (__main__.TheCommittedGoldenIsREAD.test_the_reference_blur_sweep_HOLDS_the_precondition_throughout) ... ok +test_the_scores_the_bound_and_n_equals_one (__main__.TheCommittedGoldenIsREAD.test_the_scores_the_bound_and_n_equals_one) ... ok +test_the_sharpest_five_and_the_best_scoring_five_share_no_member (__main__.TheCommittedGoldenIsREAD.test_the_sharpest_five_and_the_best_scoring_five_share_no_member) ... ok +test_the_temporal_split_is_FFT_free_and_opposite_in_sign (__main__.TheCommittedGoldenIsREAD.test_the_temporal_split_is_FFT_free_and_opposite_in_sign) ... ok +test_the_unsharp_arm_is_VALID_and_is_the_fifth_leg (__main__.TheCommittedGoldenIsREAD.test_the_unsharp_arm_is_VALID_and_is_the_fifth_leg) ... ok +test_the_within_render_correlations_and_their_SIGNS (__main__.TheCommittedGoldenIsREAD.test_the_within_render_correlations_and_their_SIGNS) ... ok +test_tone_is_ruled_out_on_a_VALID_arm (__main__.TheCommittedGoldenIsREAD.test_tone_is_ruled_out_on_a_VALID_arm) ... ok +test_a_blurred_arm_a_decoy_WINS_is_marked_invalid_and_says_so (__main__.TheRunRecordsValidityOnEveryArm.test_a_blurred_arm_a_decoy_WINS_is_marked_invalid_and_says_so) ... ok +test_every_scored_arm_carries_a_validity_verdict (__main__.TheRunRecordsValidityOnEveryArm.test_every_scored_arm_carries_a_validity_verdict) ... ok +test_one_number_is_not_reported_twice_as_two (__main__.TheRunRecordsValidityOnEveryArm.test_one_number_is_not_reported_twice_as_two) ... ok +test_the_console_prints_the_columns_that_decide_the_delta (__main__.TheRunRecordsValidityOnEveryArm.test_the_console_prints_the_columns_that_decide_the_delta) ... ok +test_the_four_conventions_are_correlated_PER_FRAME_and_recorded (__main__.TheRunRecordsValidityOnEveryArm.test_the_four_conventions_are_correlated_PER_FRAME_and_recorded) ... ok +test_the_high_band_line_names_the_band_it_measured (__main__.TheRunRecordsValidityOnEveryArm.test_the_high_band_line_names_the_band_it_measured) ... ok +test_a_collapsed_render_cannot_be_fitted_and_says_so (__main__.ToneFit.test_a_collapsed_render_cannot_be_fitted_and_says_so) ... ok +test_a_known_gamma_is_recovered_from_the_quantile_curve (__main__.ToneFit.test_a_known_gamma_is_recovered_from_the_quantile_curve) ... ok +test_applying_the_fit_moves_the_level_toward_the_target (__main__.ToneFit.test_applying_the_fit_moves_the_level_toward_the_target) ... ok + +---------------------------------------------------------------------- +Ran 56 tests in 4.231s + +OK diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_prompt_adherence.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_prompt_adherence.log new file mode 100644 index 000000000..66d17a025 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_prompt_adherence.log @@ -0,0 +1,53 @@ +test_a_directory_that_is_not_the_checkpoint_exits_unreadable (__main__.CommandLine.test_a_directory_that_is_not_the_checkpoint_exits_unreadable) ... ok +test_adherence_without_a_reference_is_refused_by_the_parser (__main__.CommandLine.test_adherence_without_a_reference_is_refused_by_the_parser) ... ok +test_the_77_position_bound_is_stated_when_adherence_is_not_measured (__main__.CommandLine.test_the_77_position_bound_is_stated_when_adherence_is_not_measured) ... ok +test_a_pin_with_no_limit_refuses_rather_than_admitting_everything (__main__.ContextLimit.test_a_pin_with_no_limit_refuses_rather_than_admitting_everything) ... ok +test_a_prompt_that_fits_is_admitted_and_its_length_reported (__main__.ContextLimit.test_a_prompt_that_fits_is_admitted_and_its_length_reported) ... ok +test_an_overlong_prompt_is_refused_and_the_message_names_it (__main__.ContextLimit.test_an_overlong_prompt_is_refused_and_the_message_names_it) ... ok +test_the_boundary_is_the_limit_and_not_one_past_it (__main__.ContextLimit.test_the_boundary_is_the_limit_and_not_one_past_it) ... ok +test_the_issues_own_example_does_not_fit_and_the_reference_does (__main__.ContextLimit.test_the_issues_own_example_does_not_fit_and_the_reference_does) ... ok +test_a_manifest_without_a_prompt_is_refused (__main__.Decoys.test_a_manifest_without_a_prompt_is_refused) ... ok +test_a_repeated_decoy_is_refused_because_it_corrupts_the_null (__main__.Decoys.test_a_repeated_decoy_is_refused_because_it_corrupts_the_null) ... ok +test_a_set_with_only_one_kind_is_refused (__main__.Decoys.test_a_set_with_only_one_kind_is_refused) ... ok +test_both_kinds_are_present (__main__.Decoys.test_both_kinds_are_present) ... ok +test_no_decoys_at_all_is_refused_rather_than_a_free_pass (__main__.Decoys.test_no_decoys_at_all_is_refused_rather_than_a_free_pass) ... ok +test_the_committed_set_has_no_repeats (__main__.Decoys.test_the_committed_set_has_no_repeats) ... ok +test_the_null_is_one_over_n_plus_one_and_is_computed (__main__.Decoys.test_the_null_is_one_over_n_plus_one_and_is_computed) ... ok +test_the_true_prompt_comes_from_the_committed_manifest (__main__.Decoys.test_the_true_prompt_comes_from_the_committed_manifest) ... ok +test_the_true_prompt_is_not_among_the_decoys (__main__.Decoys.test_the_true_prompt_is_not_among_the_decoys) ... ok +test_ported_vllm_test_clip_the_two_feature_routes_agree (__main__.PinnedCheckpoint.test_ported_vllm_test_clip_the_two_feature_routes_agree) +Ported from `vllm/tests/models/multimodal/pooling/test_clip.py` at ... skipped 'VT_LTX25_ADHERENCE_MODEL is unset: the pinned CLIP checkpoint is not on this host, so the two cases that need real weights CANNOT RUN. This is a SKIP and never a pass' +test_the_committed_pin_admits_the_real_checkpoint (__main__.PinnedCheckpoint.test_the_committed_pin_admits_the_real_checkpoint) ... skipped 'VT_LTX25_ADHERENCE_MODEL is unset: the pinned CLIP checkpoint is not on this host, so the two cases that need real weights CANNOT RUN. This is a SKIP and never a pass' +test_the_projected_features_have_the_pinned_projection_dim (__main__.PinnedCheckpoint.test_the_projected_features_have_the_pinned_projection_dim) ... skipped 'VT_LTX25_ADHERENCE_MODEL is unset: the pinned CLIP checkpoint is not on this host, so the two cases that need real weights CANNOT RUN. This is a SKIP and never a pass' +test_the_real_scorer_refuses_the_issues_own_70_word_prompt (__main__.PinnedCheckpoint.test_the_real_scorer_refuses_the_issues_own_70_word_prompt) ... skipped 'VT_LTX25_ADHERENCE_MODEL is unset: the pinned CLIP checkpoint is not on this host, so the two cases that need real weights CANNOT RUN. This is a SKIP and never a pass' +test_the_true_prompt_listed_as_a_decoy_is_refused_before_any_scoring (__main__.PinnedCheckpoint.test_the_true_prompt_listed_as_a_decoy_is_refused_before_any_scoring) ... skipped 'VT_LTX25_ADHERENCE_MODEL is unset: the pinned CLIP checkpoint is not on this host, so the two cases that need real weights CANNOT RUN. This is a SKIP and never a pass' +test_a_competent_scorer_passes_and_reports_its_margin (__main__.Precondition.test_a_competent_scorer_passes_and_reports_its_margin) ... ok +test_a_constant_scorer_is_refused_even_though_it_has_an_argmax (__main__.Precondition.test_a_constant_scorer_is_refused_even_though_it_has_an_argmax) ... ok +test_a_scorer_that_ranks_a_decoy_first_on_the_reference_is_refused (__main__.Precondition.test_a_scorer_that_ranks_a_decoy_first_on_the_reference_is_refused) ... ok +test_a_render_at_the_bound_passes_and_one_below_it_fails (__main__.S1Bound.test_a_render_at_the_bound_passes_and_one_below_it_fails) ... ok +test_one_render_and_two_references_give_opposite_verdicts (__main__.S1Bound.test_one_render_and_two_references_give_opposite_verdicts) ... ok +test_the_detail_prints_the_recomputed_bound_and_not_a_constant (__main__.S1Bound.test_the_detail_prints_the_recomputed_bound_and_not_a_constant) ... ok +test_the_direction_is_the_mirror_of_the_blockiness_bound (__main__.S1Bound.test_the_direction_is_the_mirror_of_the_blockiness_bound) ... ok +test_the_looseness_is_reported_in_the_references_own_units (__main__.S1Bound.test_the_looseness_is_reported_in_the_references_own_units) ... ok +test_a_matrix_with_no_decoy_column_is_refused (__main__.S2Discrimination.test_a_matrix_with_no_decoy_column_is_refused) ... ok +test_a_noise_render_fails_s2_where_blockiness_passes_it (__main__.S2Discrimination.test_a_noise_render_fails_s2_where_blockiness_passes_it) ... ok +test_a_render_that_ranks_a_decoy_first_fails (__main__.S2Discrimination.test_a_render_that_ranks_a_decoy_first_fails) ... ok +test_per_frame_wins_are_reported_so_a_lucky_mean_is_visible (__main__.S2Discrimination.test_per_frame_wins_are_reported_so_a_lucky_mean_is_visible) ... ok +test_the_margin_moves_with_the_set_size (__main__.S2Discrimination.test_the_margin_moves_with_the_set_size) ... ok +test_the_null_is_printed_beside_the_verdict_passing_or_failing (__main__.S2Discrimination.test_the_null_is_printed_beside_the_verdict_passing_or_failing) ... ok +test_a_matching_digest_is_admitted (__main__.ScorerIdentity.test_a_matching_digest_is_admitted) ... ok +test_a_missing_file_refuses (__main__.ScorerIdentity.test_a_missing_file_refuses) ... ok +test_a_wrong_digest_refuses (__main__.ScorerIdentity.test_a_wrong_digest_refuses) ... ok +test_an_empty_pin_refuses_rather_than_verifying_nothing (__main__.ScorerIdentity.test_an_empty_pin_refuses_rather_than_verifying_nothing) ... ok +test_an_unmeasured_digest_refuses_and_names_what_owes_the_measurement (__main__.ScorerIdentity.test_an_unmeasured_digest_refuses_and_names_what_owes_the_measurement) ... ok +test_the_committed_pin_refuses_a_directory_that_is_not_the_checkpoint (__main__.ScorerIdentity.test_the_committed_pin_refuses_a_directory_that_is_not_the_checkpoint) ... ok +test_every_pinned_file_carries_a_sha256_or_declares_itself_unmeasured (__main__.ScorerPin.test_every_pinned_file_carries_a_sha256_or_declares_itself_unmeasured) ... ok +test_the_context_limit_is_the_one_the_tool_enforces (__main__.ScorerPin.test_the_context_limit_is_the_one_the_tool_enforces) ... ok +test_the_pin_names_a_repo_and_a_revision (__main__.ScorerPin.test_the_pin_names_a_repo_and_a_revision) ... ok +test_the_pin_stays_an_instrument_and_never_becomes_an_oracle (__main__.ScorerPin.test_the_pin_stays_an_instrument_and_never_becomes_an_oracle) ... ok +test_the_three_costs_a_reader_must_not_discover_by_surprise (__main__.ScorerPin.test_the_three_costs_a_reader_must_not_discover_by_surprise) ... ok + +---------------------------------------------------------------------- +Ran 47 tests in 0.635s + +OK (skipped=5) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_render_compare.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_render_compare.log new file mode 100644 index 000000000..4480f1fc8 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_ltx25_render_compare.log @@ -0,0 +1,5 @@ +................................................................. +---------------------------------------------------------------------- +Ran 65 tests in 9.976s + +OK diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log new file mode 100644 index 000000000..4edaff002 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log @@ -0,0 +1,37 @@ +test_capture_rechecks_artifacts_package_and_scripts_after_generation (__main__.CaptureOutputTests.test_capture_rechecks_artifacts_package_and_scripts_after_generation) ... ok +test_existing_outputs_are_not_overwritten (__main__.CaptureOutputTests.test_existing_outputs_are_not_overwritten) ... ok +test_explicit_default_manifest_path_is_allowed (__main__.CaptureOutputTests.test_explicit_default_manifest_path_is_allowed) ... ok +test_installed_wheel_vcs_prefix_is_verified_and_qualified (__main__.CaptureOutputTests.test_installed_wheel_vcs_prefix_is_verified_and_qualified) ... ok +test_legacy_capture_records_and_rechecks_consumed_distribution_metadata (__main__.CaptureOutputTests.test_legacy_capture_records_and_rechecks_consumed_distribution_metadata) ... ok +test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture (__main__.CaptureOutputTests.test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture) ... ok +test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes (__main__.CaptureOutputTests.test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes) ... ok +test_legacy_neartie_protects_symlinked_inputs (__main__.CaptureOutputTests.test_legacy_neartie_protects_symlinked_inputs) ... ok +test_legacy_neartie_provenance_preserves_every_input_and_alias (__main__.CaptureOutputTests.test_legacy_neartie_provenance_preserves_every_input_and_alias) ... ok +test_legacy_output_hardlink_cannot_overwrite_an_input (__main__.CaptureOutputTests.test_legacy_output_hardlink_cannot_overwrite_an_input) ... ok +test_legacy_output_symlink_cannot_overwrite_an_input (__main__.CaptureOutputTests.test_legacy_output_symlink_cannot_overwrite_an_input) ... ok +test_legacy_provenance_preserves_hardlinked_inputs (__main__.CaptureOutputTests.test_legacy_provenance_preserves_hardlinked_inputs) ... ok +test_legacy_publication_preserves_capture_inputs (__main__.CaptureOutputTests.test_legacy_publication_preserves_capture_inputs) ... ok +test_legacy_publication_protects_selected_distribution_metadata (__main__.CaptureOutputTests.test_legacy_publication_protects_selected_distribution_metadata) ... ok +test_legacy_publication_refuses_aliases_between_output_destinations (__main__.CaptureOutputTests.test_legacy_publication_refuses_aliases_between_output_destinations) ... ok +test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable (__main__.CaptureOutputTests.test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable) ... ok +test_neartie_does_not_replace_existing_strict_outputs (__main__.CaptureOutputTests.test_neartie_does_not_replace_existing_strict_outputs) ... ok +test_neartie_rechecks_its_runtime_and_input_bytes (__main__.CaptureOutputTests.test_neartie_rechecks_its_runtime_and_input_bytes) ... ok +test_neartie_refuses_cache_mode_seed_and_token_mismatches (__main__.CaptureOutputTests.test_neartie_refuses_cache_mode_seed_and_token_mismatches) ... ok +test_neartie_refuses_changed_capture_identity_metadata (__main__.CaptureOutputTests.test_neartie_refuses_changed_capture_identity_metadata) ... ok +test_neartie_refuses_changed_constructor_sampling_state (__main__.CaptureOutputTests.test_neartie_refuses_changed_constructor_sampling_state) ... ok +test_neartie_refuses_input_hash_drift_and_missing_provenance (__main__.CaptureOutputTests.test_neartie_refuses_input_hash_drift_and_missing_provenance) ... ok +test_neartie_refuses_nonfinite_and_sub_millinat_drift (__main__.CaptureOutputTests.test_neartie_refuses_nonfinite_and_sub_millinat_drift) ... ok +test_neartie_requires_complete_observed_capture_identity (__main__.CaptureOutputTests.test_neartie_requires_complete_observed_capture_identity) ... ok +test_nondeterminism_and_prompt_drift_write_nothing (__main__.CaptureOutputTests.test_nondeterminism_and_prompt_drift_write_nothing) ... ok +test_normalized_sampling_records_the_upstream_seed_sentinel (__main__.CaptureOutputTests.test_normalized_sampling_records_the_upstream_seed_sentinel) ... ok +test_observed_cache_and_model_identity_must_agree (__main__.CaptureOutputTests.test_observed_cache_and_model_identity_must_agree) ... ok +test_publication_failure_rolls_back_new_outputs (__main__.CaptureOutputTests.test_publication_failure_rolls_back_new_outputs) ... ok +test_sampling_records_constructor_state_without_claiming_request_resolution (__main__.CaptureOutputTests.test_sampling_records_constructor_state_without_claiming_request_resolution) ... ok +test_short_outputs_use_the_same_padding_in_both_arrays (__main__.CaptureOutputTests.test_short_outputs_use_the_same_padding_in_both_arrays) ... ok +test_teacher_forcing_uses_our_prefix_and_preserves_gap_units (__main__.CaptureOutputTests.test_teacher_forcing_uses_our_prefix_and_preserves_gap_units) ... ok +test_ten_runs_publish_numpy_and_actual_provenance (__main__.CaptureOutputTests.test_ten_runs_publish_numpy_and_actual_provenance) ... ok + +---------------------------------------------------------------------- +Ran 32 tests in 52.348s + +OK diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs.log new file mode 100644 index 000000000..6d28c3923 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_outputs.log @@ -0,0 +1,355 @@ +test_capture_rechecks_artifacts_package_and_scripts_after_generation (__main__.CaptureOutputTests.test_capture_rechecks_artifacts_package_and_scripts_after_generation) ... ok +test_existing_outputs_are_not_overwritten (__main__.CaptureOutputTests.test_existing_outputs_are_not_overwritten) ... ok +test_explicit_default_manifest_path_is_allowed (__main__.CaptureOutputTests.test_explicit_default_manifest_path_is_allowed) ... FAIL +test_installed_wheel_vcs_prefix_is_verified_and_qualified (__main__.CaptureOutputTests.test_installed_wheel_vcs_prefix_is_verified_and_qualified) ... ok +test_legacy_capture_records_and_rechecks_consumed_distribution_metadata (__main__.CaptureOutputTests.test_legacy_capture_records_and_rechecks_consumed_distribution_metadata) ... FAIL +test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture (__main__.CaptureOutputTests.test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture) ... FAIL +test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes (__main__.CaptureOutputTests.test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes) ... FAIL +test_legacy_neartie_protects_symlinked_inputs (__main__.CaptureOutputTests.test_legacy_neartie_protects_symlinked_inputs) ... FAIL +test_legacy_neartie_provenance_preserves_every_input_and_alias (__main__.CaptureOutputTests.test_legacy_neartie_provenance_preserves_every_input_and_alias) ... FAIL +test_legacy_output_hardlink_cannot_overwrite_an_input (__main__.CaptureOutputTests.test_legacy_output_hardlink_cannot_overwrite_an_input) ... FAIL +test_legacy_output_symlink_cannot_overwrite_an_input (__main__.CaptureOutputTests.test_legacy_output_symlink_cannot_overwrite_an_input) ... FAIL +test_legacy_provenance_preserves_hardlinked_inputs (__main__.CaptureOutputTests.test_legacy_provenance_preserves_hardlinked_inputs) ... FAIL +test_legacy_publication_preserves_capture_inputs (__main__.CaptureOutputTests.test_legacy_publication_preserves_capture_inputs) ... FAIL +test_legacy_publication_protects_selected_distribution_metadata (__main__.CaptureOutputTests.test_legacy_publication_protects_selected_distribution_metadata) ... FAIL +test_legacy_publication_refuses_aliases_between_output_destinations (__main__.CaptureOutputTests.test_legacy_publication_refuses_aliases_between_output_destinations) ... FAIL +test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable (__main__.CaptureOutputTests.test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable) ... FAIL +test_neartie_does_not_replace_existing_strict_outputs (__main__.CaptureOutputTests.test_neartie_does_not_replace_existing_strict_outputs) ... FAIL +test_neartie_rechecks_its_runtime_and_input_bytes (__main__.CaptureOutputTests.test_neartie_rechecks_its_runtime_and_input_bytes) ... FAIL +test_neartie_refuses_cache_mode_seed_and_token_mismatches (__main__.CaptureOutputTests.test_neartie_refuses_cache_mode_seed_and_token_mismatches) ... FAIL +test_neartie_refuses_changed_capture_identity_metadata (__main__.CaptureOutputTests.test_neartie_refuses_changed_capture_identity_metadata) ... FAIL +test_neartie_refuses_changed_constructor_sampling_state (__main__.CaptureOutputTests.test_neartie_refuses_changed_constructor_sampling_state) ... FAIL +test_neartie_refuses_input_hash_drift_and_missing_provenance (__main__.CaptureOutputTests.test_neartie_refuses_input_hash_drift_and_missing_provenance) ... FAIL +test_neartie_refuses_nonfinite_and_sub_millinat_drift (__main__.CaptureOutputTests.test_neartie_refuses_nonfinite_and_sub_millinat_drift) ... FAIL +test_neartie_requires_complete_observed_capture_identity (__main__.CaptureOutputTests.test_neartie_requires_complete_observed_capture_identity) ... FAIL +test_nondeterminism_and_prompt_drift_write_nothing (__main__.CaptureOutputTests.test_nondeterminism_and_prompt_drift_write_nothing) ... FAIL +test_normalized_sampling_records_the_upstream_seed_sentinel (__main__.CaptureOutputTests.test_normalized_sampling_records_the_upstream_seed_sentinel) ... FAIL +test_observed_cache_and_model_identity_must_agree (__main__.CaptureOutputTests.test_observed_cache_and_model_identity_must_agree) ... ok +test_publication_failure_rolls_back_new_outputs (__main__.CaptureOutputTests.test_publication_failure_rolls_back_new_outputs) ... ok +test_sampling_records_constructor_state_without_claiming_request_resolution (__main__.CaptureOutputTests.test_sampling_records_constructor_state_without_claiming_request_resolution) ... FAIL +test_short_outputs_use_the_same_padding_in_both_arrays (__main__.CaptureOutputTests.test_short_outputs_use_the_same_padding_in_both_arrays) ... FAIL +test_teacher_forcing_uses_our_prefix_and_preserves_gap_units (__main__.CaptureOutputTests.test_teacher_forcing_uses_our_prefix_and_preserves_gap_units) ... FAIL +test_ten_runs_publish_numpy_and_actual_provenance (__main__.CaptureOutputTests.test_ten_runs_publish_numpy_and_actual_provenance) ... FAIL + +====================================================================== +FAIL: test_explicit_default_manifest_path_is_allowed (__main__.CaptureOutputTests.test_explicit_default_manifest_path_is_allowed) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 120, in test_explicit_default_manifest_path_is_allowed + provenance = self.capture("--provenance-out", str(self.out / "oracle-provenance.json")) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_capture_records_and_rechecks_consumed_distribution_metadata (__main__.CaptureOutputTests.test_legacy_capture_records_and_rechecks_consumed_distribution_metadata) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 607, in test_legacy_capture_records_and_rechecks_consumed_distribution_metadata + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture (__main__.CaptureOutputTests.test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 295, in test_legacy_distribution_is_preserved_but_cannot_feed_strict_capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : oracle execution: production; enforce_eager=False +ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes (__main__.CaptureOutputTests.test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 594, in test_legacy_explicit_default_manifest_and_replacement_keep_valid_hashes + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_neartie_protects_symlinked_inputs (__main__.CaptureOutputTests.test_legacy_neartie_protects_symlinked_inputs) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 464, in test_legacy_neartie_protects_symlinked_inputs + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_neartie_provenance_preserves_every_input_and_alias (__main__.CaptureOutputTests.test_legacy_neartie_provenance_preserves_every_input_and_alias) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 409, in test_legacy_neartie_provenance_preserves_every_input_and_alias + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_output_hardlink_cannot_overwrite_an_input (__main__.CaptureOutputTests.test_legacy_output_hardlink_cannot_overwrite_an_input) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 494, in test_legacy_output_hardlink_cannot_overwrite_an_input + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_output_symlink_cannot_overwrite_an_input (__main__.CaptureOutputTests.test_legacy_output_symlink_cannot_overwrite_an_input) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 451, in test_legacy_output_symlink_cannot_overwrite_an_input + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_provenance_preserves_hardlinked_inputs (__main__.CaptureOutputTests.test_legacy_provenance_preserves_hardlinked_inputs) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 474, in test_legacy_provenance_preserves_hardlinked_inputs + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_publication_preserves_capture_inputs (__main__.CaptureOutputTests.test_legacy_publication_preserves_capture_inputs) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 436, in test_legacy_publication_preserves_capture_inputs + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_publication_protects_selected_distribution_metadata (__main__.CaptureOutputTests.test_legacy_publication_protects_selected_distribution_metadata) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 507, in test_legacy_publication_protects_selected_distribution_metadata + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_publication_refuses_aliases_between_output_destinations (__main__.CaptureOutputTests.test_legacy_publication_refuses_aliases_between_output_destinations) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 549, in test_legacy_publication_refuses_aliases_between_output_destinations + self.prepare_legacy_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 402, in prepare_legacy_neartie + self.assertEqual(result.returncode, 0, result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable (__main__.CaptureOutputTests.test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 94, in test_legacy_replacement_and_manifestless_teacher_forcing_remain_usable + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : oracle execution: production; enforce_eager=False +ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_does_not_replace_existing_strict_outputs (__main__.CaptureOutputTests.test_neartie_does_not_replace_existing_strict_outputs) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 257, in test_neartie_does_not_replace_existing_strict_outputs + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_rechecks_its_runtime_and_input_bytes (__main__.CaptureOutputTests.test_neartie_rechecks_its_runtime_and_input_bytes) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 274, in test_neartie_rechecks_its_runtime_and_input_bytes + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_refuses_cache_mode_seed_and_token_mismatches (__main__.CaptureOutputTests.test_neartie_refuses_cache_mode_seed_and_token_mismatches) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 213, in test_neartie_refuses_cache_mode_seed_and_token_mismatches + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_refuses_changed_capture_identity_metadata (__main__.CaptureOutputTests.test_neartie_refuses_changed_capture_identity_metadata) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 235, in test_neartie_refuses_changed_capture_identity_metadata + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_refuses_changed_constructor_sampling_state (__main__.CaptureOutputTests.test_neartie_refuses_changed_constructor_sampling_state) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 351, in test_neartie_refuses_changed_constructor_sampling_state + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_refuses_input_hash_drift_and_missing_provenance (__main__.CaptureOutputTests.test_neartie_refuses_input_hash_drift_and_missing_provenance) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 222, in test_neartie_refuses_input_hash_drift_and_missing_provenance + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_refuses_nonfinite_and_sub_millinat_drift (__main__.CaptureOutputTests.test_neartie_refuses_nonfinite_and_sub_millinat_drift) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 265, in test_neartie_refuses_nonfinite_and_sub_millinat_drift + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_neartie_requires_complete_observed_capture_identity (__main__.CaptureOutputTests.test_neartie_requires_complete_observed_capture_identity) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 363, in test_neartie_requires_complete_observed_capture_identity + self.prepare_neartie() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_nondeterminism_and_prompt_drift_write_nothing (__main__.CaptureOutputTests.test_nondeterminism_and_prompt_drift_write_nothing) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 72, in test_nondeterminism_and_prompt_drift_write_nothing + self.assert_refused(result, "NONDETERMINISTIC") + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_tools.py", line 184, in assert_refused + self.assertIn(reason, result.stderr, result.stdout + result.stderr) +AssertionError: 'NONDETERMINISTIC' not found in 'ARTIFACT_MISMATCH: imported and installed vLLM versions differ\n' : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_normalized_sampling_records_the_upstream_seed_sentinel (__main__.CaptureOutputTests.test_normalized_sampling_records_the_upstream_seed_sentinel) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 82, in test_normalized_sampling_records_the_upstream_seed_sentinel + provenance = self.capture("--seed", "-1") + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_sampling_records_constructor_state_without_claiming_request_resolution (__main__.CaptureOutputTests.test_sampling_records_constructor_state_without_claiming_request_resolution) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 334, in test_sampling_records_constructor_state_without_claiming_request_resolution + capture = self.capture("--seed", "-1") + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_short_outputs_use_the_same_padding_in_both_arrays (__main__.CaptureOutputTests.test_short_outputs_use_the_same_padding_in_both_arrays) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 75, in test_short_outputs_use_the_same_padding_in_both_arrays + self.capture(env={"FAKE_SHORT": "1"}) + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_teacher_forcing_uses_our_prefix_and_preserves_gap_units (__main__.CaptureOutputTests.test_teacher_forcing_uses_our_prefix_and_preserves_gap_units) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 198, in test_teacher_forcing_uses_our_prefix_and_preserves_gap_units + our = self.prepare_neartie() + ^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 190, in prepare_neartie + self.capture() + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +====================================================================== +FAIL: test_ten_runs_publish_numpy_and_actual_provenance (__main__.CaptureOutputTests.test_ten_runs_publish_numpy_and_actual_provenance) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 28, in test_ten_runs_publish_numpy_and_actual_provenance + provenance = self.capture("--kv-cache-dtype", dtype, "--seed", "17", + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_outputs.py", line 19, in capture + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) +AssertionError: 1 != 0 : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +---------------------------------------------------------------------- +Ran 32 tests in 11.782s + +FAILED (failures=27) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log new file mode 100644 index 000000000..221b1b332 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log @@ -0,0 +1,142 @@ +test_all_three_prompt_sources_are_checked (__main__.CaptureContractTests.test_all_three_prompt_sources_are_checked) ... ok +test_dirty_source_is_refused_even_when_the_wheel_matches_it (__main__.CaptureContractTests.test_dirty_source_is_refused_even_when_the_wheel_matches_it) ... ok +test_each_qwen35_identity_indicator_prevents_legacy_downgrade (__main__.CaptureContractTests.test_each_qwen35_identity_indicator_prevents_legacy_downgrade) ... ok +test_imported_and_installed_runtime_versions_must_agree (__main__.CaptureContractTests.test_imported_and_installed_runtime_versions_must_agree) ... ok +test_model_revision_and_content_are_verified (__main__.CaptureContractTests.test_model_revision_and_content_are_verified) ... ok +test_options_and_eager_alias (__main__.CaptureContractTests.test_options_and_eager_alias) ... usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --enforce-eager conflicts with --execution-mode production +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --enforce-eager conflicts with --execution-mode production +ok +test_options_reject_invalid_counts_and_cache_modes (__main__.CaptureContractTests.test_options_reject_invalid_counts_and_cache_modes) ... usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --max-tokens must be positive +usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: argument --kv-cache-dtype: invalid choice: 'float32' (choose from 'auto', 'bfloat16', 'fp8_e4m3') +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --max-tokens must be positive +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: argument --kv-cache-dtype: invalid choice: 'float32' (choose from 'auto', 'bfloat16', 'fp8_e4m3') +ok +test_runtime_identity_cannot_promote_unverified_legacy_inputs (__main__.CaptureContractTests.test_runtime_identity_cannot_promote_unverified_legacy_inputs) ... ok +test_runtime_manifest_and_wheel_are_verified (__main__.CaptureContractTests.test_runtime_manifest_and_wheel_are_verified) ... ok +test_strict_identity_inputs_are_required (__main__.CaptureContractTests.test_strict_identity_inputs_are_required) ... ok +test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision (__main__.CaptureContractTests.test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision) ... ok +test_strict_short_repetition_count_is_refused (__main__.CaptureContractTests.test_strict_short_repetition_count_is_refused) ... ok +test_untracked_package_bytes_and_missing_artifact_metadata_are_refused (__main__.CaptureContractTests.test_untracked_package_bytes_and_missing_artifact_metadata_are_refused) ... ok +test_vllm_revision_and_dirty_source_are_refused (__main__.CaptureContractTests.test_vllm_revision_and_dirty_source_are_refused) ... ok +test_weight_bytes_are_checked_against_download_identity (__main__.CaptureContractTests.test_weight_bytes_are_checked_against_download_identity) ... ok +test_ci_runs_both_suites_after_its_existing_numpy_install (__main__.CaptureRegistrationTests.test_ci_runs_both_suites_after_its_existing_numpy_install) ... ok +test_preflight_runs_both_suites_or_reports_numpy_pending (__main__.CaptureRegistrationTests.test_preflight_runs_both_suites_or_reports_numpy_pending) ... ok + +---------------------------------------------------------------------- +Ran 17 tests in 4.251s + +OK diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools.log new file mode 100644 index 000000000..3b9efe66c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/numpy-suites/test_qwen3_capture_tools.log @@ -0,0 +1,153 @@ +test_all_three_prompt_sources_are_checked (__main__.CaptureContractTests.test_all_three_prompt_sources_are_checked) ... ok +test_dirty_source_is_refused_even_when_the_wheel_matches_it (__main__.CaptureContractTests.test_dirty_source_is_refused_even_when_the_wheel_matches_it) ... ok +test_each_qwen35_identity_indicator_prevents_legacy_downgrade (__main__.CaptureContractTests.test_each_qwen35_identity_indicator_prevents_legacy_downgrade) ... ok +test_imported_and_installed_runtime_versions_must_agree (__main__.CaptureContractTests.test_imported_and_installed_runtime_versions_must_agree) ... ok +test_model_revision_and_content_are_verified (__main__.CaptureContractTests.test_model_revision_and_content_are_verified) ... ok +test_options_and_eager_alias (__main__.CaptureContractTests.test_options_and_eager_alias) ... usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --enforce-eager conflicts with --execution-mode production +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --enforce-eager conflicts with --execution-mode production +ok +test_options_reject_invalid_counts_and_cache_modes (__main__.CaptureContractTests.test_options_reject_invalid_counts_and_cache_modes) ... usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --max-tokens must be positive +usage: test_qwen3_capture_tools.py [-h] [--model MODEL] [--out-dir OUT_DIR] + [--runs RUNS] [--max-tokens MAX_TOKENS] + [--gpu-mem GPU_MEM] [--per-prompt] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: argument --kv-cache-dtype: invalid choice: 'float32' (choose from auto, bfloat16, fp8_e4m3) +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --runs must be positive +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: --max-tokens must be positive +usage: test_qwen3_capture_tools.py [-h] --model MODEL --golden-dir GOLDEN_DIR + [--max-tokens MAX_TOKENS] [--topk TOPK] + [--gpu-mem-util GPU_MEM_UTIL] [--runs RUNS] + [--kv-cache-dtype {auto,bfloat16,fp8_e4m3}] + [--execution-mode {production,eager}] + [--enforce-eager] [--seed SEED] + [--model-revision MODEL_REVISION] + [--vllm-revision VLLM_REVISION] + [--provenance-out PROVENANCE_OUT] + [--vllm-wheel VLLM_WHEEL] + [--runtime-manifest RUNTIME_MANIFEST] +test_qwen3_capture_tools.py: error: argument --kv-cache-dtype: invalid choice: 'float32' (choose from auto, bfloat16, fp8_e4m3) +ok +test_runtime_identity_cannot_promote_unverified_legacy_inputs (__main__.CaptureContractTests.test_runtime_identity_cannot_promote_unverified_legacy_inputs) ... ok +test_runtime_manifest_and_wheel_are_verified (__main__.CaptureContractTests.test_runtime_manifest_and_wheel_are_verified) ... ok +test_strict_identity_inputs_are_required (__main__.CaptureContractTests.test_strict_identity_inputs_are_required) ... ok +test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision (__main__.CaptureContractTests.test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision) ... FAIL +test_strict_short_repetition_count_is_refused (__main__.CaptureContractTests.test_strict_short_repetition_count_is_refused) ... ok +test_untracked_package_bytes_and_missing_artifact_metadata_are_refused (__main__.CaptureContractTests.test_untracked_package_bytes_and_missing_artifact_metadata_are_refused) ... ok +test_vllm_revision_and_dirty_source_are_refused (__main__.CaptureContractTests.test_vllm_revision_and_dirty_source_are_refused) ... ok +test_weight_bytes_are_checked_against_download_identity (__main__.CaptureContractTests.test_weight_bytes_are_checked_against_download_identity) ... ok +test_ci_runs_both_suites_after_its_existing_numpy_install (__main__.CaptureRegistrationTests.test_ci_runs_both_suites_after_its_existing_numpy_install) ... ok +test_preflight_runs_both_suites_or_reports_numpy_pending (__main__.CaptureRegistrationTests.test_preflight_runs_both_suites_or_reports_numpy_pending) ... ok + +====================================================================== +FAIL: test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision (__main__.CaptureContractTests.test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_tools.py", line 275, in test_strict_runtime_needs_an_observed_source_or_installed_vcs_revision + self.assert_refused(self.run_script(), "observed source or installed VCS revision") + File "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_qwen3_capture_tools.py", line 184, in assert_refused + self.assertIn(reason, result.stderr, result.stdout + result.stderr) +AssertionError: 'observed source or installed VCS revision' not found in 'ARTIFACT_MISMATCH: imported and installed vLLM versions differ\n' : ARTIFACT_MISMATCH: imported and installed vLLM versions differ + + +---------------------------------------------------------------------- +Ran 17 tests in 4.642s + +FAILED (failures=1) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/preflight-original-failure.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/preflight-original-failure.log new file mode 100644 index 000000000..2adec226d --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/preflight-original-failure.log @@ -0,0 +1,196 @@ +Session role: + ok role=operator session=ppid:1763437 branch=codex/rdna3-wmma-coordinator +Record gates: + ok check-conflict-markers + ok check-prompt-contract + ok check-agent-record + ok check-release-binary-contract + ok check-release-workflow + ok check-windows-release-state + ok check-container-matrix + ok check-container-workflow + ok check-build-runtime-deps + ok check-lease-ccache + FAIL check-role-discipline + ERROR: c3fe98ba6: repository change (include/vt/rocm/rocm_quant_wmma_arch.h, src/vt/rocm/rocm_grouped_gemm.hip, tests/CMakeLists.txt, tests/capi/rocm_quant_gather_fixture.h, ... (+5)) reached main without arriving on a task branch. Work happens in its own worktree on a `row/` branch and lands through a reviewed PR or an authorized local merge naming that branch; never directly on the shared checkout + ok claim-view + ok check-readme-structure + ok check-quickstart-recipes + ok check-benchmark-index + ok check-model-checklist + ok check-supported-models + ok check-env-doc + ok check-fusion-consistency + ok check-attention-rung-consistency + ok check-fp4-resident-consistency + ok check-cuda-op-arch-gate + ok check-rocm-dp4a-intrinsic + ok check-runner-routing-consistency + ok check-surface-coverage + ok check-test-registration + ok check-snapshot-pins + ok check-oracle-pins + ok check-oracle-denominator-flags + ok check-now-current + ok check-gate-commands + ok check-symbol-anchors + ok ready-for-helper + ok upstream-inventory + ok audit-live-rows +Mutation suites: + ok test_check_prompt_contract + ok test_agent_gates + ok test_agent_record + ok test_check_release_binary_contract + ok test_release_manifest + ok test_release_archive + ok test_release_pipeline + ok test_check_windows_release_state + ok test_release_postpublish_audit + ok test_check_container_matrix + ok test_check_container_workflow + ok test_check_build_runtime_deps + ok test_check_lease_ccache + ok test_validate_container_image + ok test_release_index + ok test_release_metadata + ok test_release_accelerator_metadata + ok test_release_macos_metadata + ok test_release_windows_metadata + ok test_cpu_release_gates + ok test_agent_role + ok test_agent_onboard + ok test_agent_start + ok test_gate_bringup + ok test_env_agnostic_tooling + ok test_claim_view + ok test_upstream_inventory + ok test_check_readme_structure + ok test_check_quickstart_recipes + ok test_check_benchmark_index + ok test_check_model_checklist + ok test_check_supported_models + ok test_check_env_doc + ok test_checker_text + ok test_check_fusion_consistency + ok test_check_attention_rung_consistency + ok test_check_fp4_resident_consistency + ok test_check_cuda_op_arch_gate + ok test_check_rocm_dp4a_intrinsic + ok test_rocm_rank_kernels + ok test_check_runner_routing_consistency + ok test_check_surface_coverage + ok test_check_test_registration + ok test_check_snapshot_pins + ok test_check_oracle_pins + ok test_cpu_x86_llamacpp_floor + ok test_audit_live_rows + ok test_check_gate_commands + ok test_gpu_lock_one_truth + ok test_main_baseline + ok test_agent_preflight_skip_report + ok test_agent_pr_body + ok test_agent_issue_index + ok test_check_symbol_anchors + ok test_check_oracle_denominator_flags + ok test_rocm_quant_gather_compare + ok test_rocm_strix_ourarm_staged + ok test_tokengate_buildreq + ok test_check_conflict_markers + ok test_check_tree_compiles + ok test_prepush_checker_names + ok test_ab_arms_differ + ok test_variadic_harness + ok test_ltx25_pixel_ab_harness + ok test_ltx2_dit_attn_knob_arms + ok test_ltx25_ab_memwatch + ok test_ltx2_oracle_goldens + ok test_ltx2_latent_dump + ok test_tower_skip_rss_report + ok test_tower_skip_rss_arm + ok test_ci_walk_base + ok test_rc_stage_checkpoint + ok test_sglang_lease_identity + ok test_q4exp_layerfp_diff + SKIP test_qwen3_capture_tools + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_qwen3_capture_outputs + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_ltx25_render_compare + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_absolute_reference + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_prompt_adherence + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_adherence_detail_loss + numpy is not importable here, and every case computes over arrays. CI installs python3-numpy and runs the same suite. + SKIP test_convert_glm5_next_gguf + numpy is not importable here, and the converter this suite exercises needs it. CI installs python3-numpy and runs the same suite. + ok test_check_windows_portability + ok trailer suites + ok commit style suites + ok tools suites + SKIP check-arm-isa-build.py + needs arguments preflight does not supply: usage: check-arm-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + ok check-attention-rung-consistency.py + ok check-benchmark-index.py + ok check-build-runtime-deps.py + ok check-conflict-markers.py + ok check-container-matrix.py + ok check-container-workflow.py + SKIP check-cpu-isa-build.py + needs arguments preflight does not supply: usage: check-cpu-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + SKIP check-cuda-fat-gencode.py + needs arguments preflight does not supply: usage: check-cuda-fat-gencode.py [-h] --compile-commands COMPILE_COMMANDS + ok check-cuda-op-arch-gate.py + ok check-device-leakage.py + ok check-dsv4-gguf-namemap.py + ok check-env-doc.py + ok check-fp4-resident-consistency.py + ok check-fusion-consistency.py + ok check-gate-commands.py + ok check-gemv-invocation-consistency.py + ok check-lease-ccache.py + ok check-model-checklist.py + ok check-oracle-denominator-flags.py + ok check-oracle-pins.py + SKIP check-pr-size.py + needs arguments preflight does not supply: usage: check-pr-size.py [-h] --base BASE --head HEAD [--branch BRANCH] + ok check-prompt-contract.py + ok check-quickstart-recipes.py + ok check-readme-structure.py + ok check-release-binary-contract.py + ok check-release-workflow.py + ok check-rocm-dp4a-intrinsic.py + FAIL check-role-discipline.py + ERROR: c3fe98ba6: repository change (include/vt/rocm/rocm_quant_wmma_arch.h, src/vt/rocm/rocm_grouped_gemm.hip, tests/CMakeLists.txt, tests/capi/rocm_quant_gather_fixture.h, ... (+5)) reached main without arriving on a task branch. Work happens in its own worktree on a `row/` branch and lands through a reviewed PR or an authorized local merge naming that branch; never directly on the shared checkout + ok check-runner-routing-consistency.py + ok check-site.py + ok check-snapshot-pins.py + ok check-supported-models.py + ok check-surface-coverage.py + ok check-symbol-anchors.py + ok check-test-registration.py + SKIP check-triton-aot-multiarch.py + needs arguments preflight does not supply: usage: check-triton-aot-multiarch.py [-h] --vendored-root VENDORED_ROOT + ok check-windows-portability.py + ok check-windows-release-state.py +Committed range vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok now-current range +Tree compiles: + compiling what this change reaches. A records-only change returns + at once; a wide header change can take minutes. + ok tree-compiles + check-tree-compiles: 8 of 8 translation unit(s) in scope compiled (2.1s). This checks syntax and semantics only; it does not link, run, or leave the default host configuration. +Commit trailers vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok commit-trailers + ok commit-style +Staged change: + ok now-current --staged + +12 gate(s) SKIPPED: test_qwen3_capture_tools test_qwen3_capture_outputs test_ltx25_render_compare test_ltx25_absolute_reference test_ltx25_prompt_adherence test_ltx25_adherence_detail_loss test_convert_glm5_next_gguf check-arm-isa-build.py check-cpu-isa-build.py check-cuda-fat-gencode.py check-pr-size.py check-triton-aot-multiarch.py +NOT a green preflight: a skipped gate reported nothing about this tree. +Each reason is printed beside its SKIP above. + +2 gate(s) failed: check-role-discipline check-role-discipline.py +Repair the record. Never weaken a checker to make a transition pass. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/receipt.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/receipt.json new file mode 100644 index 000000000..95fefec0e --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/receipt.json @@ -0,0 +1,548 @@ +{ + "collected_at": "2026-09-14T04:51:04.287169+00:00", + "implementation_sha": "c3fe98ba6c55ce71e75746e1b944a27640464e0f", + "operator_worktree": "/home/vikash/vllm.cpp-rdna3-wmma", + "operator_branch": "row/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3-coordinator", + "gpu": { + "lock": "/home/vikash/gpu.lock", + "HIP_VISIBLE_DEVICES": "0", + "ROCR_VISIBLE_DEVICES": "0" + }, + "baseline": { + "source_sha": "cef9f821632eb33156bb7d24a0a85eeab7f7484a", + "focused_exit": 0, + "broad_exit": 0, + "broad_registered": 28, + "broad_skipped": 5 + }, + "candidate": { + "build_exit": 0, + "architecture_exit": 0, + "architecture_cases": 16, + "architecture_assertions": 109, + "broad_exit": 0, + "broad_registered": 29, + "broad_skipped": 5, + "broad_seconds": 34.0, + "public_gate": "test_capi_rocm_quant_wmma is included in the broad run" + }, + "preflight": { + "command": "GIT_CONFIG_GLOBAL=/dev/null scripts/agent-preflight.sh --staged --quiet", + "exit": 1, + "failed_invocations": [ + "check-role-discipline", + "check-role-discipline.py" + ], + "underlying_failed_checker": "scripts/check-role-discipline.py", + "original_branch": "codex/rdna3-wmma-coordinator", + "resolution": { + "branch": "row/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3-coordinator", + "command": "python3 scripts/check-role-discipline.py", + "exit": 0, + "receipt": "role-after-rename.log", + "checker_changed": false, + "interpretation": "The row branch retains a REPORT for pending task content instead of failing as if it landed on main." + }, + "paired_skips": [ + "test_qwen3_capture_tools", + "test_qwen3_capture_outputs", + "test_ltx25_render_compare", + "test_ltx25_absolute_reference", + "test_ltx25_prompt_adherence", + "test_ltx25_adherence_detail_loss", + "test_convert_glm5_next_gguf", + "check-arm-isa-build.py", + "check-cpu-isa-build.py", + "check-cuda-fat-gencode.py", + "check-pr-size.py", + "check-triton-aot-multiarch.py" + ], + "full_preflight_rerun_after_rename": false + }, + "product_identity": { + "command": "git diff --exit-code c3fe98ba6c55ce71e75746e1b944a27640464e0f -- include src tests tools", + "exit": 0, + "files": { + "include/vt/rocm/rocm_quant_wmma_arch.h": { + "bytes": 1265, + "sha256": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10" + }, + "src/vt/rocm/rocm_grouped_gemm.hip": { + "bytes": 92976, + "sha256": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + }, + "tests/CMakeLists.txt": { + "bytes": 288832, + "sha256": "af976c1d8821a0652e75520bd2dbdda33aa2dd997b1e5813338ba61fe71e6a5f" + }, + "tests/capi/rocm_quant_gather_fixture.h": { + "bytes": 8775, + "sha256": "7a0a2919c853d55f61412f28d9c634a980c143a2eb7adba7445a3e46491ca1c8" + }, + "tests/capi/test_rocm_quant_wmma.cpp": { + "bytes": 7444, + "sha256": "a5b8054e8c2e78f0e27a0c8dc140bb6a5053cc9e55dd4d2dcd2b56524f34f041" + }, + "tests/vt/test_backend_cross_device.cpp": { + "bytes": 369835, + "sha256": "d20bd5138bb0c45e6fb8ad7803c7544cdcfaadf6202620e2a57905d118db005e" + }, + "tests/vt/test_rocm_arch.cpp": { + "bytes": 13843, + "sha256": "9b1c9e9f2338cf6e4e2523194b3878b64d587604ac39487287a94c57b973dca0" + }, + "tools/rocm_quant_wmma/capture.cpp": { + "bytes": 5964, + "sha256": "93971fd3c8ce83ed5180e34ca19de7410de3932a45c28d455998d9bd66e93921" + }, + "tools/rocm_quant_wmma/primary.py": { + "bytes": 8478, + "sha256": "4dc7fbc844acc0ca35be8e5be1ee311d06b21ffe1b380e32564e48b02fd9c063" + } + } + }, + "receipts": { + "baseline-receipt.json": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/baseline-receipt.json", + "bytes": 1561, + "sha256": "431c2359f7cfc91e526f2c56e1de2d424a9e8d34552478032ddbbf7eebaa490f" + }, + "baseline-focused.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/rdna3-wmma-baseline-tests.log", + "bytes": 571, + "sha256": "b61a72054345f5ac1700b9e4ac06f60df206da24e152f261c355121e0ce695ed" + }, + "baseline-broad.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/rdna3-wmma-full-baseline-tests.log", + "bytes": 4161, + "sha256": "09fb787ca37c76cc1b1b4f326c33ebcc2abdeee29e0ddec89490c080e59a901a" + }, + "candidate-arch.log": { + "source": "/tmp/rdna3-wmma-operator-arch.log", + "bytes": 298, + "sha256": "c379abc214ea72cd18194c463d169e9651334fb3d8519afb8236fe9821caed16" + }, + "candidate-build.log": { + "source": "/tmp/rdna3-wmma-operator-candidate-build.log", + "bytes": 1476, + "sha256": "29dd8869a86e57d16ab383b8363a469022cf85846a1bb50b209a21bc19d9634e" + }, + "candidate-tests.log": { + "source": "/tmp/rdna3-wmma-operator-candidate-tests.log", + "bytes": 4292, + "sha256": "773c6aa335445e86daac0a72724264879f2fbcc1d0d2cbaa15fd2316e6638496" + }, + "preflight-original-failure.log": { + "source": "/tmp/rdna3-wmma-operator-final-preflight.log", + "bytes": 10236, + "sha256": "5de69dfe39fa8edfc84dd0db93ba05bab138495ff4b07b862d0ccd81aeccaa2a" + }, + "role-after-rename.log": { + "source": "/tmp/rdna3-wmma-operator-role-after-rename.log", + "bytes": 459, + "sha256": "c74252602e074405820799bbdffbc6b37332b79d83492d2ad23850c5089a0236" + }, + "numpy-suites/numpy-only-summary.json": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/numpy-only-summary.json", + "bytes": 143, + "sha256": "aebbb38abf42d409da85e0aa3de3797f8a50e7644916cb0ae99f3e475dcd4e9b" + }, + "numpy-suites/summary.json": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/summary.json", + "bytes": 508, + "sha256": "1301a34c3b4a1ddbd1431de495bf25cfb3787ffd123cc96c7e43b85f25908a7f" + }, + "numpy-suites/test_convert_glm5_next_gguf.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_convert_glm5_next_gguf.log", + "bytes": 7328, + "sha256": "c7277c96d32273ddae18257eb79e97a06f241066e8175f9d832175f46b17be09" + }, + "numpy-suites/test_ltx25_absolute_reference.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_ltx25_absolute_reference.log", + "bytes": 4318, + "sha256": "c60b955a1193840d4ef06a7450c16a3f83cef86f4ebed8df2d319fb87c1f5cd6" + }, + "numpy-suites/test_ltx25_adherence_detail_loss.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_ltx25_adherence_detail_loss.log", + "bytes": 8376, + "sha256": "b868c28455caaf78944887455a406d93fe47412b5198b882726da78522bf567e" + }, + "numpy-suites/test_ltx25_prompt_adherence.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_ltx25_prompt_adherence.log", + "bytes": 7594, + "sha256": "66226fb508b845f4a59aa868f3c1da654a35ea7c0afb535e42f057653c6cbdc5" + }, + "numpy-suites/test_ltx25_render_compare.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_ltx25_render_compare.log", + "bytes": 164, + "sha256": "72e3eed62562f4f3e2562c1102d68847ba01466de0d045095bd8f6365a5ad7e9" + }, + "numpy-suites/test_qwen3_capture_outputs-numpy-only.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log", + "bytes": 4972, + "sha256": "14ced4f5d32f2ba7dc94437fc0045ba971cda03ce985016f5a5e48072f66542a" + }, + "numpy-suites/test_qwen3_capture_outputs.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_qwen3_capture_outputs.log", + "bytes": 27959, + "sha256": "22c43fe58915716853f11a2a1c5a2fd29b9fe800cbe0da4f9ed3a5c4b1857ee5" + }, + "numpy-suites/test_qwen3_capture_tools-numpy-only.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log", + "bytes": 11245, + "sha256": "cdb23e47644b3b49a220383a237c9f2ec4fbb25e269387fb8391edf01489f09b" + }, + "numpy-suites/test_qwen3_capture_tools.log": { + "source": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/test_qwen3_capture_tools.log", + "bytes": 12258, + "sha256": "8597b7908d8f6da3270a91018187173ebbbd46a6dba5e481f6fd04c78b2571ef" + } + }, + "operator_artifacts": { + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/CMakeCache.txt": { + "bytes": 27160, + "sha256": "954c83c11c4af88e1ba503b1190cdc3da89051fde30abf1d7f32afff2a55ca01" + }, + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/libvllm.so.0.0.3": { + "bytes": 32121360, + "sha256": "8e167de4c2bbb9208db909757f79fed9540b3b666f2e96ae484a065d8cc0f37d" + }, + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_backend_cross_device": { + "bytes": 33331392, + "sha256": "879f48d9d774ef0cb3e54604a2685b9437ffee96342adac81c8fb08bbe11371e" + }, + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_capi_rocm_quant_wmma": { + "bytes": 32243080, + "sha256": "c496087b13064134b3d82d759e6b3bec94ae5c798296e150c9b13c70c6722d85" + }, + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_arch": { + "bytes": 32417368, + "sha256": "e27486fdc99ade704e0caff5449728474678dee395e3c82115a13d3e53476517" + } + }, + "G4": "PENDING: coordinating operator model outcome not yet supplied", + "fresh_review": { + "verdict": "PASS", + "findings": "NONE", + "implementation_sha": "c3fe98ba6c55ce71e75746e1b944a27640464e0f", + "evidence_sha": "c176168cbbdcca700b6346ebb6a1914033b85eda", + "receipt": "../review/review-report.json" + }, + "build_configuration": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", + "CMAKE_HIP_COMPILER": "/opt/rocm/lib/llvm/bin/clang++", + "CMAKE_HIP_COMPILER_LAUNCHER": "ccache", + "ROCM_PATH": "/opt/rocm", + "VLLM_CPP_CUDA": "OFF", + "VLLM_CPP_HIP": "ON", + "VLLM_CPP_HIP_ARCHITECTURES": "gfx1100", + "VLLM_CPP_METAL": "OFF", + "VLLM_CPP_MLX": "OFF", + "VLLM_CPP_TENSTORRENT": "OFF", + "VLLM_CPP_VULKAN": "OFF", + "CMAKE_GENERATOR": "Ninja" + }, + "reconstructed_build_recipe": { + "provenance": "Reproducible reconstruction from CMakeCache and registered CTest commands. The original complete build argv was not retained.", + "cwd": "/home/vikash/vllm.cpp-rdna3-wmma", + "argv": [ + "cmake", + "--build", + "build-rdna3-wmma-operator", + "--target", + "rocm_quant_wmma_capture", + "test_backend_cross_device", + "test_capi_rocm_embedding_quant", + "test_capi_rocm_quant_wmma", + "test_exl3_rocm", + "test_gemma4_rocm_fp8_seams", + "test_ops_rocm_silu_rounding", + "test_qwen35_moe_kq_device", + "test_qwen4_exp_rocm_reductions", + "test_rocm_arch", + "test_rocm_attn_gate_split", + "test_rocm_backend", + "test_rocm_embedding_quant", + "test_rocm_f16_contract", + "test_rocm_f16_device", + "test_rocm_f16_model", + "test_rocm_f16_weights", + "test_rocm_fp8_kv_cache", + "test_rocm_moe_bf16", + "test_rocm_moe_grouped_bf16", + "test_rocm_moe_reference_set", + "test_rocm_moe_upstream", + "test_rocm_norm_quant_bridge", + "test_rocm_pinned_h2d", + "test_rocm_quant_dot", + "-j4" + ] + }, + "ctest_command_inventory": [ + { + "name": "test_rocm_moe_bf16", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_moe_bf16" + ] + }, + { + "name": "test_backend_cross_device", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_backend_cross_device" + ] + }, + { + "name": "test_backend_cross_device_vt_attn_decode_d128", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_backend_cross_device", + "--test-case=*head_dim 128*" + ] + }, + { + "name": "test_rocm_arch", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_arch" + ] + }, + { + "name": "test_rocm_pinned_h2d", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_pinned_h2d" + ] + }, + { + "name": "test_rocm_f16_contract", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_f16_contract" + ] + }, + { + "name": "test_rocm_norm_quant_bridge", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_norm_quant_bridge" + ] + }, + { + "name": "test_rocm_quant_dot", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_quant_dot" + ] + }, + { + "name": "test_rocm_backend", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_backend" + ] + }, + { + "name": "test_rocm_attn_gate_split", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_attn_gate_split" + ] + }, + { + "name": "test_rocm_attn_gate_split_device_binding", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_attn_gate_split", + "--no-skip", + "--test-case=ROCm split binds*" + ] + }, + { + "name": "test_rocm_attn_gate_split_large_index", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_attn_gate_split", + "--no-skip", + "--test-case=ROCm split indexes*" + ] + }, + { + "name": "test_rocm_f16_weights", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_f16_weights" + ] + }, + { + "name": "test_rocm_f16_graph_dedup", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_f16_weights", + "--test-case=ROCm F16 graph handles*" + ] + }, + { + "name": "test_rocm_f16_device", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_f16_device" + ] + }, + { + "name": "test_rocm_f16_model", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_f16_model" + ] + }, + { + "name": "test_rocm_fp8_kv_cache", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_fp8_kv_cache" + ] + }, + { + "name": "test_ops_rocm_silu_rounding", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_ops_rocm_silu_rounding" + ] + }, + { + "name": "test_exl3_rocm", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_exl3_rocm" + ] + }, + { + "name": "test_capi_rocm_embedding_quant", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_capi_rocm_embedding_quant" + ] + }, + { + "name": "test_capi_rocm_quant_wmma", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_capi_rocm_quant_wmma" + ] + }, + { + "name": "test_rocm_embedding_quant", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_embedding_quant" + ] + }, + { + "name": "test_rocm_moe_grouped_bf16", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_moe_grouped_bf16" + ] + }, + { + "name": "test_rocm_moe_upstream", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_moe_upstream" + ] + }, + { + "name": "test_rocm_moe_reference_set", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_rocm_moe_reference_set" + ] + }, + { + "name": "test_rocm_sample_scratch", + "command": [ + "/home/vikash/.local/bin/python3.11", + "/home/vikash/vllm.cpp-rdna3-wmma/tests/scripts/test_rocm_sample_scratch.py" + ] + }, + { + "name": "test_gemma4_rocm_fp8_seams", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_gemma4_rocm_fp8_seams" + ] + }, + { + "name": "test_rocm_qwen35_moe_kq_device", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_qwen35_moe_kq_device", + "-tc=*(ROCm)*" + ] + }, + { + "name": "test_qwen4_exp_rocm_reductions", + "command": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/tests/test_qwen4_exp_rocm_reductions" + ] + } + ], + "supplemental_numpy": { + "source_worktree": "/home/vikash/vllm.cpp-rdna3-wmma", + "initial_python": "/home/vikash/.venv/bin/python", + "numpy_version": "2.4.6", + "initial_results": [ + { + "suite": "test_qwen3_capture_tools", + "exit_code": 1 + }, + { + "suite": "test_qwen3_capture_outputs", + "exit_code": 1 + }, + { + "suite": "test_ltx25_render_compare", + "exit_code": 0 + }, + { + "suite": "test_ltx25_absolute_reference", + "exit_code": 0 + }, + { + "suite": "test_ltx25_prompt_adherence", + "exit_code": 0 + }, + { + "suite": "test_ltx25_adherence_detail_loss", + "exit_code": 0 + }, + { + "suite": "test_convert_glm5_next_gguf", + "exit_code": 0 + } + ], + "qwen_failure_cause": "Installed vLLM distribution metadata in the existing venv conflicts with the fixture runtime. The output suite reports ARTIFACT_MISMATCH: imported and installed vLLM versions differ.", + "qwen_isolation": { + "python": "/usr/bin/python3", + "PYTHONPATH": "/home/vikash/.cache/rdna3-wmma-operator/numpy-suites/numpy-only", + "contents": "Symlinks to existing numpy and numpy.libs only. No package installs, repository edits, or vLLM distribution metadata.", + "results": [ + { + "suite": "test_qwen3_capture_tools", + "exit_code": 0 + }, + { + "suite": "test_qwen3_capture_outputs", + "exit_code": 0 + } + ] + }, + "final_suite_exit_codes": { + "test_qwen3_capture_tools": 0, + "test_qwen3_capture_outputs": 0, + "test_ltx25_render_compare": 0, + "test_ltx25_absolute_reference": 0, + "test_ltx25_prompt_adherence": 0, + "test_ltx25_adherence_detail_loss": 0, + "test_convert_glm5_next_gguf": 0 + }, + "unittest_case_counts": { + "test_qwen3_capture_tools": 17, + "test_qwen3_capture_outputs": 32, + "test_ltx25_render_compare": 65, + "test_ltx25_absolute_reference": 21, + "test_ltx25_prompt_adherence": 47, + "test_ltx25_adherence_detail_loss": 56 + }, + "converter_result": "All cases passed.", + "remaining_checkpoint_subcase_skips": { + "suite": "test_ltx25_prompt_adherence", + "count": 5, + "reason": "VT_LTX25_ADHERENCE_MODEL is unset; pinned CLIP checkpoint unavailable.", + "cases": [ + "test_ported_vllm_test_clip_the_two_feature_routes_agree", + "test_the_committed_pin_admits_the_real_checkpoint", + "test_the_projected_features_have_the_pinned_projection_dim", + "test_the_real_scorer_refuses_the_issues_own_70_word_prompt", + "test_the_true_prompt_listed_as_a_decoy_is_refused_before_any_scoring" + ] + }, + "original_preflight_skip_disposition_preserved": true + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/role-after-rename.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/role-after-rename.log new file mode 100644 index 000000000..665ff7433 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/operator/role-after-rename.log @@ -0,0 +1,2 @@ +REPORT: c3fe98ba6: repository change (include/vt/rocm/rocm_quant_wmma_arch.h, src/vt/rocm/rocm_grouped_gemm.hip, tests/CMakeLists.txt, tests/capi/rocm_quant_gather_fixture.h, ... (+5)) reached main without arriving on a task branch. Work happens in its own worktree on a `row/` branch and lands through a reviewed PR or an authorized local merge naming that branch; never directly on the shared checkout +OK: every change on main arrived on a task branch. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-build.log new file mode 100644 index 000000000..d71d7806a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-build.log @@ -0,0 +1,5 @@ +["cmake", "--build", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", "-j", "4", "--target", "test_capi_rocm_quant_wmma", "test_backend_cross_device"] +[1/4] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[2/4] Linking HIP static library libvllm.a +[3/4] Linking HIP executable tests/test_capi_rocm_quant_wmma +[4/4] Linking HIP executable tests/test_backend_cross_device diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-focused.log new file mode 100644 index 000000000..35199c5f6 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-focused.log @@ -0,0 +1,67 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*"] +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3687: +TEST CASE: keep-quant Q6_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3776: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3776: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3786: +TEST CASE: keep-quant Q4_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3870: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3870: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3883: +TEST CASE: keep-quant GEMM matches the CPU oracle when M and N are not multiples of 16 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3974: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3974: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(f.name) := q4_K + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3993: +TEST CASE: keep-quant GEMM matches the CPU oracle when only one of M/N is misaligned + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q4_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( false == true ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q4_K + +=============================================================================== +[doctest] test cases: 4 | 0 passed | 4 failed | 57 skipped +[doctest] assertions: 46 | 36 passed | 10 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-public.log new file mode 100644 index 000000000..dedd5ef7d --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-public.log @@ -0,0 +1,10 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma"] +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: Q4_K public WMMA dispatch mismatch diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-restoration.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-restoration.json new file mode 100644 index 000000000..8a7500e26 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/admission-restoration.json @@ -0,0 +1,4 @@ +{ + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-admit-unmeasured-gfx11.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-admit-unmeasured-gfx11.log new file mode 100644 index 000000000..2a6a30680 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-admit-unmeasured-gfx11.log @@ -0,0 +1,42 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx110 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx11000 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100garbage + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1101 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1102 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1103 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1150 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1151 + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 23 passed | 8 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-attention-gfx1100.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-attention-gfx1100.log new file mode 100644 index 000000000..ba7b64d7c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-attention-gfx1100.log @@ -0,0 +1,16 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:131: ERROR: CHECK_FALSE( vt::rocm::GcnArchNameIsGfx12PrefillWmma("gfx1100") ) is NOT correct! + values: CHECK_FALSE( true ) + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:132: ERROR: CHECK_FALSE( vt::rocm::GcnArchNameIsGfx12PrefillWmma("gfx1100:xnack-") ) is NOT correct! + values: CHECK_FALSE( true ) + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 29 passed | 2 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-ignore-invalid-features.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-ignore-invalid-features.log new file mode 100644 index 000000000..ea5cd8187 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-ignore-invalid-features.log @@ -0,0 +1,38 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100: + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:xnack + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:foo+ + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:xnack-: + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100::xnack- + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1100:xnack-:xnack+ + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:129: ERROR: CHECK_FALSE( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK_FALSE( true ) + logged: std::string(name) := gfx1200:sramecc+:sramecc+ + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 24 passed | 7 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-mutation-results.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-mutation-results.json new file mode 100644 index 000000000..adf755e8e --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-mutation-results.json @@ -0,0 +1,162 @@ +[ + { + "mutation": "arch-unchanged", + "exit": 0, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-remove-gfx1100", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-admit-unmeasured-gfx11", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-remove-gfx1200", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-remove-gfx1201", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-ignore-invalid-features", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-reject-valid-features", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + }, + { + "mutation": "arch-attention-gfx1100", + "exit": 1, + "command": [ + "g++", + "-std=c++17", + "-O2", + "-I/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/include", + "-I/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/third_party", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/main.cpp", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-test" + ], + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "include/vt/rocm/rocm_skinny_gemm_arch.h": "73bb1ce71447998aff66fdf548b5f2f6bfc7e4db2d5f7ab652f822c2a49e2be7", + "include/vt/rocm/rocm_arch.h": "d36380d2f244209688c0e934b0fe3a74b9bb4537c19dc8adfbb2f05302ffa84a" + } + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-reject-valid-features.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-reject-valid-features.log new file mode 100644 index 000000000..3586c7239 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-reject-valid-features.log @@ -0,0 +1,26 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100:xnack- + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100:sramecc+:xnack- + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1200:sramecc- + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1201:xnack+:sramecc+ + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 27 passed | 4 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1100.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1100.log new file mode 100644 index 000000000..51c7f3410 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1100.log @@ -0,0 +1,22 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100:xnack- + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1100:sramecc+:xnack- + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 28 passed | 3 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1200.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1200.log new file mode 100644 index 000000000..0eaf0a7e2 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1200.log @@ -0,0 +1,18 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1200 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1200:sramecc- + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 29 passed | 2 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1201.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1201.log new file mode 100644 index 000000000..4ce7118f0 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-remove-gfx1201.log @@ -0,0 +1,18 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:114: +TEST CASE: quantized WMMA admits only measured device names and HIP features + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1201 + +/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-source/test.cpp:120: ERROR: CHECK( GcnArchNameHasQuantWmma(name) ) is NOT correct! + values: CHECK( false ) + logged: std::string(name) := gfx1201:xnack+:sramecc+ + +=============================================================================== +[doctest] test cases: 1 | 0 passed | 1 failed | 15 skipped +[doctest] assertions: 31 | 29 passed | 2 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-unchanged.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-unchanged.log new file mode 100644 index 000000000..c04de9c5b --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/arch-unchanged.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 1 | 1 passed | 0 failed | 15 skipped +[doctest] assertions: 31 | 31 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-build.log new file mode 100644 index 000000000..d71d7806a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-build.log @@ -0,0 +1,5 @@ +["cmake", "--build", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", "-j", "4", "--target", "test_capi_rocm_quant_wmma", "test_backend_cross_device"] +[1/4] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[2/4] Linking HIP static library libvllm.a +[3/4] Linking HIP executable tests/test_capi_rocm_quant_wmma +[4/4] Linking HIP executable tests/test_backend_cross_device diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-focused.log new file mode 100644 index 000000000..61f98cf10 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-focused.log @@ -0,0 +1,41 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*"] +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3786: +TEST CASE: keep-quant Q4_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3858: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( -nan <= 0.0005 ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3867: ERROR: CHECK( Nmse(ref, gotf) <= kNmseTol ) is NOT correct! + values: CHECK( nan <= 0.0005 ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3883: +TEST CASE: keep-quant GEMM matches the CPU oracle when M and N are not multiples of 16 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3965: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( -nan <= 0.0005 ) + logged: std::string(f.name) := q4_K + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3993: +TEST CASE: keep-quant GEMM matches the CPU oracle when only one of M/N is misaligned + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4086: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( -nan <= 0.0005 ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q4_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4086: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( -nan <= 0.0005 ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q4_K + +=============================================================================== +[doctest] test cases: 4 | 1 passed | 3 failed | 57 skipped +[doctest] assertions: 46 | 41 passed | 5 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-public.log new file mode 100644 index 000000000..929526d01 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-public.log @@ -0,0 +1,14 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma"] +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=2 q6_wmma=1 tokens= 33 111 28 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: scalar completion tokens differ +PUBLIC prompt=37 q4_wmma=2 q6_wmma=1 tokens= 99 102 7 124 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-restoration.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-restoration.json new file mode 100644 index 000000000..8a7500e26 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q4-restoration.json @@ -0,0 +1,4 @@ +{ + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-build.log new file mode 100644 index 000000000..d71d7806a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-build.log @@ -0,0 +1,5 @@ +["cmake", "--build", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", "-j", "4", "--target", "test_capi_rocm_quant_wmma", "test_backend_cross_device"] +[1/4] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[2/4] Linking HIP static library libvllm.a +[3/4] Linking HIP executable tests/test_capi_rocm_quant_wmma +[4/4] Linking HIP executable tests/test_backend_cross_device diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-focused.log new file mode 100644 index 000000000..92c583af4 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-focused.log @@ -0,0 +1,41 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*"] +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3687: +TEST CASE: keep-quant Q6_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3760: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 1 <= 0.0005 ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3769: ERROR: CHECK( Nmse(ref, gotf) <= kNmseTol ) is NOT correct! + values: CHECK( 1 <= 0.0005 ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3883: +TEST CASE: keep-quant GEMM matches the CPU oracle when M and N are not multiples of 16 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3965: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 0.822588 <= 0.0005 ) + logged: std::string(f.name) := q6_K + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3993: +TEST CASE: keep-quant GEMM matches the CPU oracle when only one of M/N is misaligned + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4086: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 0.915041 <= 0.0005 ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4086: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( -nan <= 0.0005 ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q6_K + +=============================================================================== +[doctest] test cases: 4 | 1 passed | 3 failed | 57 skipped +[doctest] assertions: 46 | 41 passed | 5 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-public.log new file mode 100644 index 000000000..233594ed5 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-public.log @@ -0,0 +1,12 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma"] +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +engine-fatal: EngineCore busy loop threw: vt rocm: embedding: id 2147483647 out of range [0, 128) +async-llm: output handler saw engine death: EngineCore encountered an issue. See stack trace (above) for the root cause. [vt rocm: embedding: id 2147483647 out of range [0, 128)] +PUBLIC WMMA FAILED: public completion: diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-restoration.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-restoration.json new file mode 100644 index 000000000..8a7500e26 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-restoration.json @@ -0,0 +1,4 @@ +{ + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-build.log new file mode 100644 index 000000000..0a4bca473 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-build.log @@ -0,0 +1,5 @@ +["cmake", "--build", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", "-j", "4", "--target", "test_capi_rocm_quant_wmma", "test_backend_cross_device"] +[1/4] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[2/4] Linking HIP static library libvllm.a +[3/4] Linking HIP executable tests/test_backend_cross_device +[4/4] Linking HIP executable tests/test_capi_rocm_quant_wmma diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-focused.log new file mode 100644 index 000000000..5e874adac --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-focused.log @@ -0,0 +1,41 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*"] +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3687: +TEST CASE: keep-quant Q6_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3760: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 1 <= 0.0005 ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3769: ERROR: CHECK( Nmse(ref, gotf) <= kNmseTol ) is NOT correct! + values: CHECK( 1 <= 0.0005 ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3883: +TEST CASE: keep-quant GEMM matches the CPU oracle when M and N are not multiples of 16 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3965: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 0.822588 <= 0.0005 ) + logged: std::string(f.name) := q6_K + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3993: +TEST CASE: keep-quant GEMM matches the CPU oracle when only one of M/N is misaligned + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4086: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 0.870016 <= 0.0005 ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4086: ERROR: CHECK( Nmse(ref, dout.Download()) <= kNmseTol ) is NOT correct! + values: CHECK( 0.96546 <= 0.0005 ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q6_K + +=============================================================================== +[doctest] test cases: 4 | 1 passed | 3 failed | 57 skipped +[doctest] assertions: 46 | 41 passed | 5 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-public.log new file mode 100644 index 000000000..3ee376dfa --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-public.log @@ -0,0 +1,14 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma"] +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=2 q6_wmma=1 tokens= 79 61 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: scalar completion tokens differ +PUBLIC prompt=37 q4_wmma=2 q6_wmma=1 tokens= 99 102 7 124 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-restoration.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-restoration.json new file mode 100644 index 000000000..8a7500e26 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/delete-q6-zero-restoration.json @@ -0,0 +1,4 @@ +{ + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/implementation-receipt-audit.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/implementation-receipt-audit.json new file mode 100644 index 000000000..b013fe638 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/implementation-receipt-audit.json @@ -0,0 +1,80 @@ +{ + "commit": "c176168cbbdcca700b6346ebb6a1914033b85eda", + "artifacts": [ + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/src/vt/rocm/rocm_grouped_gemm.hip", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/include/vt/rocm/rocm_quant_wmma_arch.h", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/include/vt/rocm/rocm_arch.h", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o.0.hipv4-amdgcn-amd-amdhsa--gfx1100", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_backend_cross_device", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/test_capi_rocm_quant_wmma", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/vllm.cpp-rdna3-wmma-impl/build-rdna3-wmma/tests/rocm_quant_wmma_capture", + "exists": true, + "matches": true + }, + { + "path": "/opt/rocm/include/rocwmma/rocwmma.hpp", + "exists": true, + "matches": true + }, + { + "path": "/opt/rocm/include/rocwmma/internal/wmma_impl.hpp", + "exists": true, + "matches": true + }, + { + "path": "/opt/rocm/include/rocwmma/internal/config.hpp", + "exists": true, + "matches": true + }, + { + "path": "/tmp/wmma-impl-gfx1100-final.isa", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/mmq-primary/manifest.json", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/mmq-native/report.json", + "exists": true, + "matches": true + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/mmq-native/comparison.json", + "exists": true, + "matches": true + } + ] +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-arch-full.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-arch-full.log new file mode 100644 index 000000000..f90542355 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-arch-full.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 16 | 16 passed | 0 failed | 0 skipped +[doctest] assertions: 109 | 109 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-configure.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-configure.log new file mode 100644 index 000000000..d01c605e0 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-configure.log @@ -0,0 +1,35 @@ +-- The CXX compiler identification is GNU 13.3.0 +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Check for working CXX compiler: /usr/bin/c++ - skipped +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- The HIP compiler identification is Clang 23.0.0 +-- Detecting HIP compiler ABI info +-- Detecting HIP compiler ABI info - done +-- Check for working HIP compiler: /opt/rocm/lib/llvm/bin/clang++ - skipped +-- Detecting HIP compile features +-- Detecting HIP compile features - done +-- ROCm backend: ENABLED for arch(es) [gfx1100] +-- ROCm backend: NEVER COMPILED UPSTREAM OF YOU — this skeleton has no build report from any machine. Please report success or failure on https://github.com/mudler/vllm.cpp/issues/41 +-- Triton AOT: default OFF — the vendored artifacts are CUDA cubins and VLLM_CPP_CUDA is OFF +-- The C compiler identification is GNU 13.3.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- ROCm hipBLAS: /opt/rocm/lib/libhipblas.so +-- ROCm hipBLASLt: /opt/rocm/lib/libhipblaslt.so +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +-- Found Threads: TRUE +-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.13") +-- Performing Test VLLM_CPP_OPENSSL_VERSION_SUPPORTED +-- Performing Test VLLM_CPP_OPENSSL_VERSION_SUPPORTED - Success +-- HuggingFace download: HTTPS through OpenSSL 3.0.13 (system, dynamic) +-- Found Python3: /home/vikash/.local/bin/python3.11 (found version "3.11.11") found components: Interpreter +-- CUDA FA2 compiled-arch manifest: [] +-- Configuring done (2.5s) +-- Generating done (1.1s) +-- Build files have been written to: /home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-default.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-default.log new file mode 100644 index 000000000..d749c9e2c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-default.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 4 | 4 passed | 0 failed | 57 skipped +[doctest] assertions: 46 | 46 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-scalar.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-scalar.log new file mode 100644 index 000000000..d749c9e2c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-focused-scalar.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 4 | 4 passed | 0 failed | 57 skipped +[doctest] assertions: 46 | 46 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-hip.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-hip.log new file mode 100644 index 000000000..a3b413d6c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-hip.log @@ -0,0 +1,71 @@ +Internal ctest changing into directory: /home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review +Test project /home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review + Start 111: test_rocm_moe_bf16 + 1/29 Test #111: test_rocm_moe_bf16 ..............................***Skipped 0.30 sec + Start 512: test_backend_cross_device + 2/29 Test #512: test_backend_cross_device ....................... Passed 4.67 sec + Start 513: test_backend_cross_device_vt_attn_decode_d128 + 3/29 Test #513: test_backend_cross_device_vt_attn_decode_d128 ... Passed 0.27 sec + Start 514: test_rocm_arch + 4/29 Test #514: test_rocm_arch .................................. Passed 0.19 sec + Start 515: test_rocm_pinned_h2d + 5/29 Test #515: test_rocm_pinned_h2d ............................ Passed 0.19 sec + Start 516: test_rocm_f16_contract + 6/29 Test #516: test_rocm_f16_contract .......................... Passed 0.18 sec + Start 518: test_rocm_norm_quant_bridge + 7/29 Test #518: test_rocm_norm_quant_bridge ..................... Passed 0.19 sec + Start 519: test_rocm_quant_dot + 8/29 Test #519: test_rocm_quant_dot ............................. Passed 1.38 sec + Start 524: test_rocm_backend + 9/29 Test #524: test_rocm_backend ............................... Passed 0.72 sec + Start 525: test_rocm_attn_gate_split +10/29 Test #525: test_rocm_attn_gate_split ....................... Passed 0.47 sec + Start 526: test_rocm_attn_gate_split_device_binding +11/29 Test #526: test_rocm_attn_gate_split_device_binding ........***Skipped 0.19 sec + Start 527: test_rocm_attn_gate_split_large_index +12/29 Test #527: test_rocm_attn_gate_split_large_index ........... Passed 0.31 sec + Start 528: test_rocm_f16_weights +13/29 Test #528: test_rocm_f16_weights ........................... Passed 1.27 sec + Start 529: test_rocm_f16_graph_dedup +14/29 Test #529: test_rocm_f16_graph_dedup ....................... Passed 0.67 sec + Start 530: test_rocm_f16_device +15/29 Test #530: test_rocm_f16_device ............................***Skipped 0.18 sec + Start 531: test_rocm_f16_model +16/29 Test #531: test_rocm_f16_model .............................***Skipped 0.18 sec + Start 532: test_rocm_fp8_kv_cache +17/29 Test #532: test_rocm_fp8_kv_cache .......................... Passed 0.39 sec + Start 533: test_ops_rocm_silu_rounding +18/29 Test #533: test_ops_rocm_silu_rounding ..................... Passed 0.32 sec + Start 554: test_exl3_rocm +19/29 Test #554: test_exl3_rocm .................................. Passed 0.41 sec + Start 567: test_capi_rocm_embedding_quant +20/29 Test #567: test_capi_rocm_embedding_quant .................. Passed 7.48 sec + Start 568: test_capi_rocm_quant_wmma +21/29 Test #568: test_capi_rocm_quant_wmma ....................... Passed 1.35 sec + Start 569: test_rocm_embedding_quant +22/29 Test #569: test_rocm_embedding_quant ....................... Passed 9.67 sec + Start 616: test_rocm_moe_grouped_bf16 +23/29 Test #616: test_rocm_moe_grouped_bf16 ...................... Passed 0.40 sec + Start 617: test_rocm_moe_upstream +24/29 Test #617: test_rocm_moe_upstream ..........................***Skipped 0.20 sec + Start 619: test_rocm_moe_reference_set +25/29 Test #619: test_rocm_moe_reference_set ..................... Passed 0.18 sec + Start 678: test_rocm_sample_scratch +26/29 Test #678: test_rocm_sample_scratch ........................ Passed 0.47 sec + Start 679: test_gemma4_rocm_fp8_seams +27/29 Test #679: test_gemma4_rocm_fp8_seams ...................... Passed 0.19 sec + Start 754: test_rocm_qwen35_moe_kq_device +28/29 Test #754: test_rocm_qwen35_moe_kq_device .................. Passed 0.78 sec + Start 760: test_qwen4_exp_rocm_reductions +29/29 Test #760: test_qwen4_exp_rocm_reductions .................. Passed 1.05 sec + +100% tests passed, 0 tests failed out of 29 + +Total Test time (real) = 34.27 sec + +The following tests did not run: + 111 - test_rocm_moe_bf16 (Skipped) + 526 - test_rocm_attn_gate_split_device_binding (Skipped) + 530 - test_rocm_f16_device (Skipped) + 531 - test_rocm_f16_model (Skipped) + 617 - test_rocm_moe_upstream (Skipped) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-preflight.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-preflight.log new file mode 100644 index 000000000..5fbf1c52a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-full-preflight.log @@ -0,0 +1,286 @@ +Session role: + ok role=helper row=KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 session=ppid:2129302 branch=row/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3-review +other coordinators recorded: 1 + - /home/vikash/vllm.cpp/.git/worktrees/vllm.cpp-rdna3-wmma - session ppid:1179272 on vikash-system (pid 1179479, last heartbeat 2640s ago) +Record gates: + ok check-conflict-markers + ok check-prompt-contract + ok check-agent-record + ok check-release-binary-contract + ok check-release-workflow + ok check-windows-release-state + ok check-container-matrix + ok check-container-workflow + ok check-build-runtime-deps + ok check-lease-ccache + ok check-role-discipline + ok claim-view + ok check-readme-structure + ok check-quickstart-recipes + ok check-benchmark-index + ok check-model-checklist + ok check-supported-models + ok check-env-doc + ok check-fusion-consistency + ok check-attention-rung-consistency + ok check-fp4-resident-consistency + ok check-cuda-op-arch-gate + ok check-rocm-dp4a-intrinsic + ok check-runner-routing-consistency + ok check-surface-coverage + ok check-test-registration + ok check-snapshot-pins + ok check-oracle-pins + ok check-oracle-denominator-flags + ok check-now-current + ok check-gate-commands + ok check-symbol-anchors + ok ready-for-helper + ok upstream-inventory + ok audit-live-rows +Mutation suites: + ok test_check_prompt_contract + ok test_agent_gates + ok test_agent_record + ok test_check_release_binary_contract + ok test_release_manifest + ok test_release_archive + ok test_release_pipeline + ok test_check_windows_release_state + ok test_release_postpublish_audit + ok test_check_container_matrix + ok test_check_container_workflow + ok test_check_build_runtime_deps + ok test_check_lease_ccache + ok test_validate_container_image + ok test_release_index + ok test_release_metadata + ok test_release_accelerator_metadata + ok test_release_macos_metadata + ok test_release_windows_metadata + ok test_cpu_release_gates + ok test_agent_role + ok test_agent_onboard + ok test_agent_start + ok test_gate_bringup + ok test_env_agnostic_tooling + ok test_claim_view + ok test_upstream_inventory + ok test_check_readme_structure + ok test_check_quickstart_recipes + ok test_check_benchmark_index + ok test_check_model_checklist + ok test_check_supported_models + ok test_check_env_doc + ok test_checker_text + ok test_check_fusion_consistency + ok test_check_attention_rung_consistency + ok test_check_fp4_resident_consistency + ok test_check_cuda_op_arch_gate + ok test_check_rocm_dp4a_intrinsic + ok test_rocm_rank_kernels + ok test_check_runner_routing_consistency + ok test_check_surface_coverage + ok test_check_test_registration + ok test_check_snapshot_pins + ok test_check_oracle_pins + ok test_cpu_x86_llamacpp_floor + ok test_audit_live_rows + ok test_check_gate_commands + ok test_gpu_lock_one_truth + ok test_main_baseline + ok test_agent_preflight_skip_report + ok test_agent_pr_body + ok test_agent_issue_index + ok test_check_symbol_anchors + ok test_check_oracle_denominator_flags + ok test_rocm_quant_gather_compare + ok test_rocm_strix_ourarm_staged + ok test_tokengate_buildreq + ok test_check_conflict_markers + ok test_check_tree_compiles + ok test_prepush_checker_names + ok test_ab_arms_differ + ok test_variadic_harness + ok test_ltx25_pixel_ab_harness + ok test_ltx2_dit_attn_knob_arms + ok test_ltx25_ab_memwatch + ok test_ltx2_oracle_goldens + ok test_ltx2_latent_dump + ok test_tower_skip_rss_report + ok test_tower_skip_rss_arm + ok test_ci_walk_base + ok test_rc_stage_checkpoint + ok test_sglang_lease_identity + ok test_q4exp_layerfp_diff + SKIP test_qwen3_capture_tools + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_qwen3_capture_outputs + PENDING: numpy is not importable. CI installs python3-numpy for these capture suites. + SKIP test_ltx25_render_compare + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_absolute_reference + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_prompt_adherence + numpy is not importable here, and the tool this suite exercises needs it. CI installs python3-numpy and runs the same suite. + SKIP test_ltx25_adherence_detail_loss + numpy is not importable here, and every case computes over arrays. CI installs python3-numpy and runs the same suite. + SKIP test_convert_glm5_next_gguf + numpy is not importable here, and the converter this suite exercises needs it. CI installs python3-numpy and runs the same suite. + ok test_check_windows_portability + ok trailer suites + ok commit style suites + ok tools suites + SKIP check-arm-isa-build.py + needs arguments preflight does not supply: usage: check-arm-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + ok check-attention-rung-consistency.py + ok check-benchmark-index.py + ok check-build-runtime-deps.py + ok check-conflict-markers.py + ok check-container-matrix.py + ok check-container-workflow.py + SKIP check-cpu-isa-build.py + needs arguments preflight does not supply: usage: check-cpu-isa-build.py [-h] --compile-commands COMPILE_COMMANDS + SKIP check-cuda-fat-gencode.py + needs arguments preflight does not supply: usage: check-cuda-fat-gencode.py [-h] --compile-commands COMPILE_COMMANDS + ok check-cuda-op-arch-gate.py + ok check-device-leakage.py + ok check-dsv4-gguf-namemap.py + ok check-env-doc.py + ok check-fp4-resident-consistency.py + ok check-fusion-consistency.py + ok check-gate-commands.py + ok check-gemv-invocation-consistency.py + ok check-lease-ccache.py + ok check-model-checklist.py + ok check-oracle-denominator-flags.py + ok check-oracle-pins.py + SKIP check-pr-size.py + needs arguments preflight does not supply: usage: check-pr-size.py [-h] --base BASE --head HEAD [--branch BRANCH] + ok check-prompt-contract.py + ok check-quickstart-recipes.py + ok check-readme-structure.py + ok check-release-binary-contract.py + ok check-release-workflow.py + ok check-rocm-dp4a-intrinsic.py + ok check-role-discipline.py + ok check-runner-routing-consistency.py + ok check-site.py + ok check-snapshot-pins.py + ok check-supported-models.py + ok check-surface-coverage.py + ok check-symbol-anchors.py + ok check-test-registration.py + SKIP check-triton-aot-multiarch.py + needs arguments preflight does not supply: usage: check-triton-aot-multiarch.py [-h] --vendored-root VENDORED_ROOT + ok check-windows-portability.py + ok check-windows-release-state.py +Committed range vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok now-current range +Tree compiles: + compiling what this change reaches. A records-only change returns + at once; a wide header change can take minutes. + ok tree-compiles + check-tree-compiles: 8 of 8 translation unit(s) in scope compiled (2.0s). This checks syntax and semantics only; it does not link, run, or leave the default host configuration. +Commit trailers vs origin/main cef9f821632eb33156bb7d24a0a85eeab7f7484a: + ok commit-trailers + ok commit-style +Staged change: + ok now-current --staged + +12 gate(s) SKIPPED: test_qwen3_capture_tools test_qwen3_capture_outputs test_ltx25_render_compare test_ltx25_absolute_reference test_ltx25_prompt_adherence test_ltx25_adherence_detail_loss test_convert_glm5_next_gguf check-arm-isa-build.py check-cpu-isa-build.py check-cuda-fat-gencode.py check-pr-size.py check-triton-aot-multiarch.py +NOT a green preflight: a skipped gate reported nothing about this tree. +Each reason is printed beside its SKIP above. + +================ .agents/NOW.md ================ +# NOW — the one-Read resume surface + + + +Snapshot, not log. History is git; evidence: +[parity ledger](parity-ledger.md), and benchmarks. Budget: 100 lines / 6,000 +characters. + +## Live claims + +Rendered on demand: **`scripts/now.py`**. It assembles every `SPIKE`/`ACTIVE` +row, its claim and PR, and the row's own next step from the matrices, +`.agents/claims/`, and each row spec's `## Now`. + +They are NOT listed here any more (ENG-NOW-DERIVED, #374). A per-row table in +this file made it a surface every row-advancing PR had to write, which is a lock +under `AGENTS.md` §Records; it conflicted in 5 of the 16 conflicting open PRs +measured at `d928e2c3`. What remains below is authored at operator cadence, so +no per-row change needs to touch this file at all. + +## Current gate + +Token-exact (or ratified distributional) vs pinned vLLM; ≥ throughput and ≤ +latency/memory on every axis, both gate models, reproduced 2–3x idle. See +[verification](verification.md). Pin: vLLM `e126687a9a` (0.28.1rc1.dev132) since +2026-09-03 (#2817). **A gate HAS now run at it and it PASSED** (2026-09-04, job +`7386f034-246a-4af5-9a04-f98aafffce54`, `dgx:gpu0`, 2h15m): the OPT candidate +captured at the target is byte-identical to the committed bar -- +`IDS mismatched_positions 0 of 96`, `IDS_BYTE_EQUAL True`, +`SELECTOR K=5 multi_valued_cells 0`, `TOKENGATE_VERDICT PASS`. The default +FLASH_ATTN backend produced the tokens, so the FA-on-GB10 risk did not fire. Our +arm's 96/96 carries over unchanged because the candidate's bytes are identical to +the bar it already passed. The BENCHMARK baselines are still measured at +`555967922` and still owe step 6 (#2818, `OPEN` at a 2026-09-12 read), **and the +other four strict goldens -- 27B W4A4, 32B-NVFP4A16, 35B, Coder -- are still +owed at the target.** The gate that passed is the OPT-125m one; it discharges +nothing about those four. They were anchored on #2794, which closed `COMPLETED` +on 2026-09-06, so the anchor is gone and not the obligation: it lives under +`## Owed` in [the tokengate spec](specs/upstream-sync-headpin-tokengate.md#L569), +unanchored by design, and whoever takes it files the issue then. Also at +[oracles/vllm.md](oracles/vllm.md#L93). + + +## Next actions + +0. **35B mid-band: first lever LANDED** (+1.31% c8, +1.38% c4). The fused + shared gate_up sink still took the MoE-marlin route (20320 launches = 5.4% + GPU); `VT_MARLIN_DENSE_PAIR` ON. Second lever LANDED: shared down-proj emits + bf16, **+2.05% BIT-IDENTICAL**. SiLU [spec](specs/moe-silu-vectorize.md) + **NEGATIVE**: the 9.2x was a MEAN over a bimodal kernel (min 1.34/max 979us); + decode SiLU already beats vLLM's. ~5% UNATTRIBUTED; needs decode-only, 1 tool. +1. **27B NVFP4 0.72x -> 0.85x** (FP8 tower native). Next: NVFP4 MLP marlin, 68% + of roof. Dense-marlin +0.5%; Triton-AOT GDN a WASH. +2. **Spike the Parakeet encoder row** (vLLM: `nano_nemotron_vl.py`; the + transducer half is NOT in vLLM: separate call). +3. **Qwen3.5-4B #206:** +2.83% `PENDING`; latency/VRAM open. +4. **Invocation-parity prevention:** CI guard + checklist; build-verify + `kGemvHeuristicAlgos` on dgx. +5. **Restore `local-ai-worker`** on dgx at campaign end (`--restart=always`). +6. **Protocol substrate — partly done.** Triage/audit + `STATUS.md` ratchet + + `AGENTS.md` tiering DONE. REMAINING: anchor backfill (6 model rows need a + DECISION); record-era rollover BLOCKED on `DONE` rows bound to + `parity-ledger.md` LINE anchors (re-anchor by ROW ID). + +**Operator/helper protocol** ([spec](workflow.md)): roles are a coordinator +record or worktree+PR; helpers claim `row/` with a DRAFT PR. Role gates +ENFORCE `agent-start.py` → claim → preflight. Review FAIL loops to a fresh +implementer until PASS. Queue: 10 rows; backfill 79, 30 anchored. +**Upstream inventory** ([spec](specs/upstream-derived-inventory-2026-08-05.md)): +SM060/061/070 below vLLM's floor = OUT-OF-SCOPE; COMP-*/DISTRIBUTED-* are REAL +unported work; **every arch in the pinned registry has a row** (the count lives in +[model-matrix.md](model-matrix.md), not here — #622); llama.cpp's 11 extra +devices IN SCOPE (`ROAD-V1-D6`). + +## Protocol invariants that bite most often + +- Every commit carries `FOLLOWING_AGENTS_PROTOCOL` + `Assisted-by:`; never + `Co-Authored-By` or `Signed-off-by` from AI. +- Three MUST-route seams: fusion, merged-GEMM, born-on-the-runner decode. + Not routing is drift; allowlist consciously or fold. +- Mirror vLLM; never ask how a feature should behave. +- `nsys` BOTH sides, SAME tool, before any perf claim; cross-tool comparisons + never establish invocation parity; whole-run sums mix prefill. +- GPU: claim a lease with `rc run` or `rc hold`. Never `ssh` to a box, because + that makes the fleet report it free while you are on it. The flock now lives + INSIDE the lease ([environment](environment.md)). Single-load steady-state, + never reload per rep, named tmux. +- Never weaken a checker to pass; repair the record. +- Work happens in its own worktree on a task branch; the shared checkout stays + clean on `main`, never a work surface. Land via `row/*` PR or authorized + local merge; remove the worktree after. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6-zero.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6-zero.log new file mode 100644 index 000000000..4a593bcff --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6-zero.log @@ -0,0 +1,11 @@ +Traceback (most recent call last): + File "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/gpu-mutations.py", line 63, in + build_result = build(mode + '-build') + ^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/gpu-mutations.py", line 29, in build + return command(label, ['cmake', '--build', str(BUILD), '-j', '4', '--target', 'test_capi_rocm_quant_wmma', 'test_backend_cross_device']) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/gpu-mutations.py", line 25, in command + assert test.returncode == expected, result + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: {'command': ['cmake', '--build', '/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch', '-j', '4', '--target', 'test_capi_rocm_quant_wmma', 'test_backend_cross_device'], 'exit': 1, 'log': '/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-build.log'} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6.log new file mode 100644 index 000000000..9649826ca --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-mutation-q6.log @@ -0,0 +1,16 @@ +Traceback (most recent call last): + File "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/gpu-mutations.py", line 67, in + assert any(message in output for message in ('public logits differ from scalar control', 'scalar completion tokens differ', 'finite full logits')), output + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +AssertionError: ["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma"] +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +engine-fatal: EngineCore busy loop threw: vt rocm: embedding: id 2147483647 out of range [0, 128) +async-llm: output handler saw engine death: EngineCore encountered an issue. See stack trace (above) for the root cause. [vt rocm: embedding: id 2147483647 out of range [0, 128)] +PUBLIC WMMA FAILED: public completion: diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-own-comparison.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-own-comparison.log new file mode 100644 index 000000000..635aa7949 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-own-comparison.log @@ -0,0 +1,240 @@ +NATIVE PARITY Q4_K-256-0-f16-7 PASS +NATIVE PARITY Q4_K-256-1-f16-7 PASS +NATIVE PARITY Q4_K-256-2-f16-7 PASS +NATIVE PARITY Q4_K-256-3-f16-7 PASS +NATIVE PARITY Q4_K-256-4-f16-7 PASS +NATIVE PARITY Q4_K-256-0-f16-83 PASS +NATIVE PARITY Q4_K-256-1-f16-83 PASS +NATIVE PARITY Q4_K-256-2-f16-83 PASS +NATIVE PARITY Q4_K-256-3-f16-83 PASS +NATIVE PARITY Q4_K-256-4-f16-83 PASS +NATIVE PARITY Q4_K-256-0-f16-128 PASS +NATIVE PARITY Q4_K-256-1-f16-128 PASS +NATIVE PARITY Q4_K-256-2-f16-128 PASS +NATIVE PARITY Q4_K-256-3-f16-128 PASS +NATIVE PARITY Q4_K-256-4-f16-128 PASS +NATIVE PARITY Q4_K-256-0-f16-2048 PASS +NATIVE PARITY Q4_K-256-1-f16-2048 PASS +NATIVE PARITY Q4_K-256-2-f16-2048 PASS +NATIVE PARITY Q4_K-256-3-f16-2048 PASS +NATIVE PARITY Q4_K-256-4-f16-2048 PASS +NATIVE PARITY Q4_K-256-0-bf16-7 PASS +NATIVE PARITY Q4_K-256-1-bf16-7 PASS +NATIVE PARITY Q4_K-256-2-bf16-7 PASS +NATIVE PARITY Q4_K-256-3-bf16-7 PASS +NATIVE PARITY Q4_K-256-4-bf16-7 PASS +NATIVE PARITY Q4_K-256-0-bf16-83 PASS +NATIVE PARITY Q4_K-256-1-bf16-83 PASS +NATIVE PARITY Q4_K-256-2-bf16-83 PASS +NATIVE PARITY Q4_K-256-3-bf16-83 PASS +NATIVE PARITY Q4_K-256-4-bf16-83 PASS +NATIVE PARITY Q4_K-256-0-bf16-128 PASS +NATIVE PARITY Q4_K-256-1-bf16-128 PASS +NATIVE PARITY Q4_K-256-2-bf16-128 PASS +NATIVE PARITY Q4_K-256-3-bf16-128 PASS +NATIVE PARITY Q4_K-256-4-bf16-128 PASS +NATIVE PARITY Q4_K-256-0-bf16-2048 PASS +NATIVE PARITY Q4_K-256-1-bf16-2048 PASS +NATIVE PARITY Q4_K-256-2-bf16-2048 PASS +NATIVE PARITY Q4_K-256-3-bf16-2048 PASS +NATIVE PARITY Q4_K-256-4-bf16-2048 PASS +NATIVE PARITY Q4_K-256-0-f32-7 PASS +NATIVE PARITY Q4_K-256-1-f32-7 PASS +NATIVE PARITY Q4_K-256-2-f32-7 PASS +NATIVE PARITY Q4_K-256-3-f32-7 PASS +NATIVE PARITY Q4_K-256-4-f32-7 PASS +NATIVE PARITY Q4_K-256-0-f32-83 PASS +NATIVE PARITY Q4_K-256-1-f32-83 PASS +NATIVE PARITY Q4_K-256-2-f32-83 PASS +NATIVE PARITY Q4_K-256-3-f32-83 PASS +NATIVE PARITY Q4_K-256-4-f32-83 PASS +NATIVE PARITY Q4_K-256-0-f32-128 PASS +NATIVE PARITY Q4_K-256-1-f32-128 PASS +NATIVE PARITY Q4_K-256-2-f32-128 PASS +NATIVE PARITY Q4_K-256-3-f32-128 PASS +NATIVE PARITY Q4_K-256-4-f32-128 PASS +NATIVE PARITY Q4_K-256-0-f32-2048 PASS +NATIVE PARITY Q4_K-256-1-f32-2048 PASS +NATIVE PARITY Q4_K-256-2-f32-2048 PASS +NATIVE PARITY Q4_K-256-3-f32-2048 PASS +NATIVE PARITY Q4_K-256-4-f32-2048 PASS +NATIVE PARITY Q4_K-1024-0-f16-7 PASS +NATIVE PARITY Q4_K-1024-1-f16-7 PASS +NATIVE PARITY Q4_K-1024-2-f16-7 PASS +NATIVE PARITY Q4_K-1024-3-f16-7 PASS +NATIVE PARITY Q4_K-1024-4-f16-7 PASS +NATIVE PARITY Q4_K-1024-0-f16-83 PASS +NATIVE PARITY Q4_K-1024-1-f16-83 PASS +NATIVE PARITY Q4_K-1024-2-f16-83 PASS +NATIVE PARITY Q4_K-1024-3-f16-83 PASS +NATIVE PARITY Q4_K-1024-4-f16-83 PASS +NATIVE PARITY Q4_K-1024-0-f16-128 PASS +NATIVE PARITY Q4_K-1024-1-f16-128 PASS +NATIVE PARITY Q4_K-1024-2-f16-128 PASS +NATIVE PARITY Q4_K-1024-3-f16-128 PASS +NATIVE PARITY Q4_K-1024-4-f16-128 PASS +NATIVE PARITY Q4_K-1024-0-f16-2048 PASS +NATIVE PARITY Q4_K-1024-1-f16-2048 PASS +NATIVE PARITY Q4_K-1024-2-f16-2048 PASS +NATIVE PARITY Q4_K-1024-3-f16-2048 PASS +NATIVE PARITY Q4_K-1024-4-f16-2048 PASS +NATIVE PARITY Q4_K-1024-0-bf16-7 PASS +NATIVE PARITY Q4_K-1024-1-bf16-7 PASS +NATIVE PARITY Q4_K-1024-2-bf16-7 PASS +NATIVE PARITY Q4_K-1024-3-bf16-7 PASS +NATIVE PARITY Q4_K-1024-4-bf16-7 PASS +NATIVE PARITY Q4_K-1024-0-bf16-83 PASS +NATIVE PARITY Q4_K-1024-1-bf16-83 PASS +NATIVE PARITY Q4_K-1024-2-bf16-83 PASS +NATIVE PARITY Q4_K-1024-3-bf16-83 PASS +NATIVE PARITY Q4_K-1024-4-bf16-83 PASS +NATIVE PARITY Q4_K-1024-0-bf16-128 PASS +NATIVE PARITY Q4_K-1024-1-bf16-128 PASS +NATIVE PARITY Q4_K-1024-2-bf16-128 PASS +NATIVE PARITY Q4_K-1024-3-bf16-128 PASS +NATIVE PARITY Q4_K-1024-4-bf16-128 PASS +NATIVE PARITY Q4_K-1024-0-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-1-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-2-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-3-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-4-bf16-2048 PASS +NATIVE PARITY Q4_K-1024-0-f32-7 PASS +NATIVE PARITY Q4_K-1024-1-f32-7 PASS +NATIVE PARITY Q4_K-1024-2-f32-7 PASS +NATIVE PARITY Q4_K-1024-3-f32-7 PASS +NATIVE PARITY Q4_K-1024-4-f32-7 PASS +NATIVE PARITY Q4_K-1024-0-f32-83 PASS +NATIVE PARITY Q4_K-1024-1-f32-83 PASS +NATIVE PARITY Q4_K-1024-2-f32-83 PASS +NATIVE PARITY Q4_K-1024-3-f32-83 PASS +NATIVE PARITY Q4_K-1024-4-f32-83 PASS +NATIVE PARITY Q4_K-1024-0-f32-128 PASS +NATIVE PARITY Q4_K-1024-1-f32-128 PASS +NATIVE PARITY Q4_K-1024-2-f32-128 PASS +NATIVE PARITY Q4_K-1024-3-f32-128 PASS +NATIVE PARITY Q4_K-1024-4-f32-128 PASS +NATIVE PARITY Q4_K-1024-0-f32-2048 PASS +NATIVE PARITY Q4_K-1024-1-f32-2048 PASS +NATIVE PARITY Q4_K-1024-2-f32-2048 PASS +NATIVE PARITY Q4_K-1024-3-f32-2048 PASS +NATIVE PARITY Q4_K-1024-4-f32-2048 PASS +NATIVE PARITY Q6_K-256-0-f16-7 PASS +NATIVE PARITY Q6_K-256-1-f16-7 PASS +NATIVE PARITY Q6_K-256-2-f16-7 PASS +NATIVE PARITY Q6_K-256-3-f16-7 PASS +NATIVE PARITY Q6_K-256-4-f16-7 PASS +NATIVE PARITY Q6_K-256-0-f16-83 PASS +NATIVE PARITY Q6_K-256-1-f16-83 PASS +NATIVE PARITY Q6_K-256-2-f16-83 PASS +NATIVE PARITY Q6_K-256-3-f16-83 PASS +NATIVE PARITY Q6_K-256-4-f16-83 PASS +NATIVE PARITY Q6_K-256-0-f16-128 PASS +NATIVE PARITY Q6_K-256-1-f16-128 PASS +NATIVE PARITY Q6_K-256-2-f16-128 PASS +NATIVE PARITY Q6_K-256-3-f16-128 PASS +NATIVE PARITY Q6_K-256-4-f16-128 PASS +NATIVE PARITY Q6_K-256-0-f16-2048 PASS +NATIVE PARITY Q6_K-256-1-f16-2048 PASS +NATIVE PARITY Q6_K-256-2-f16-2048 PASS +NATIVE PARITY Q6_K-256-3-f16-2048 PASS +NATIVE PARITY Q6_K-256-4-f16-2048 PASS +NATIVE PARITY Q6_K-256-0-bf16-7 PASS +NATIVE PARITY Q6_K-256-1-bf16-7 PASS +NATIVE PARITY Q6_K-256-2-bf16-7 PASS +NATIVE PARITY Q6_K-256-3-bf16-7 PASS +NATIVE PARITY Q6_K-256-4-bf16-7 PASS +NATIVE PARITY Q6_K-256-0-bf16-83 PASS +NATIVE PARITY Q6_K-256-1-bf16-83 PASS +NATIVE PARITY Q6_K-256-2-bf16-83 PASS +NATIVE PARITY Q6_K-256-3-bf16-83 PASS +NATIVE PARITY Q6_K-256-4-bf16-83 PASS +NATIVE PARITY Q6_K-256-0-bf16-128 PASS +NATIVE PARITY Q6_K-256-1-bf16-128 PASS +NATIVE PARITY Q6_K-256-2-bf16-128 PASS +NATIVE PARITY Q6_K-256-3-bf16-128 PASS +NATIVE PARITY Q6_K-256-4-bf16-128 PASS +NATIVE PARITY Q6_K-256-0-bf16-2048 PASS +NATIVE PARITY Q6_K-256-1-bf16-2048 PASS +NATIVE PARITY Q6_K-256-2-bf16-2048 PASS +NATIVE PARITY Q6_K-256-3-bf16-2048 PASS +NATIVE PARITY Q6_K-256-4-bf16-2048 PASS +NATIVE PARITY Q6_K-256-0-f32-7 PASS +NATIVE PARITY Q6_K-256-1-f32-7 PASS +NATIVE PARITY Q6_K-256-2-f32-7 PASS +NATIVE PARITY Q6_K-256-3-f32-7 PASS +NATIVE PARITY Q6_K-256-4-f32-7 PASS +NATIVE PARITY Q6_K-256-0-f32-83 PASS +NATIVE PARITY Q6_K-256-1-f32-83 PASS +NATIVE PARITY Q6_K-256-2-f32-83 PASS +NATIVE PARITY Q6_K-256-3-f32-83 PASS +NATIVE PARITY Q6_K-256-4-f32-83 PASS +NATIVE PARITY Q6_K-256-0-f32-128 PASS +NATIVE PARITY Q6_K-256-1-f32-128 PASS +NATIVE PARITY Q6_K-256-2-f32-128 PASS +NATIVE PARITY Q6_K-256-3-f32-128 PASS +NATIVE PARITY Q6_K-256-4-f32-128 PASS +NATIVE PARITY Q6_K-256-0-f32-2048 PASS +NATIVE PARITY Q6_K-256-1-f32-2048 PASS +NATIVE PARITY Q6_K-256-2-f32-2048 PASS +NATIVE PARITY Q6_K-256-3-f32-2048 PASS +NATIVE PARITY Q6_K-256-4-f32-2048 PASS +NATIVE PARITY Q6_K-1024-0-f16-7 PASS +NATIVE PARITY Q6_K-1024-1-f16-7 PASS +NATIVE PARITY Q6_K-1024-2-f16-7 PASS +NATIVE PARITY Q6_K-1024-3-f16-7 PASS +NATIVE PARITY Q6_K-1024-4-f16-7 PASS +NATIVE PARITY Q6_K-1024-0-f16-83 PASS +NATIVE PARITY Q6_K-1024-1-f16-83 PASS +NATIVE PARITY Q6_K-1024-2-f16-83 PASS +NATIVE PARITY Q6_K-1024-3-f16-83 PASS +NATIVE PARITY Q6_K-1024-4-f16-83 PASS +NATIVE PARITY Q6_K-1024-0-f16-128 PASS +NATIVE PARITY Q6_K-1024-1-f16-128 PASS +NATIVE PARITY Q6_K-1024-2-f16-128 PASS +NATIVE PARITY Q6_K-1024-3-f16-128 PASS +NATIVE PARITY Q6_K-1024-4-f16-128 PASS +NATIVE PARITY Q6_K-1024-0-f16-2048 PASS +NATIVE PARITY Q6_K-1024-1-f16-2048 PASS +NATIVE PARITY Q6_K-1024-2-f16-2048 PASS +NATIVE PARITY Q6_K-1024-3-f16-2048 PASS +NATIVE PARITY Q6_K-1024-4-f16-2048 PASS +NATIVE PARITY Q6_K-1024-0-bf16-7 PASS +NATIVE PARITY Q6_K-1024-1-bf16-7 PASS +NATIVE PARITY Q6_K-1024-2-bf16-7 PASS +NATIVE PARITY Q6_K-1024-3-bf16-7 PASS +NATIVE PARITY Q6_K-1024-4-bf16-7 PASS +NATIVE PARITY Q6_K-1024-0-bf16-83 PASS +NATIVE PARITY Q6_K-1024-1-bf16-83 PASS +NATIVE PARITY Q6_K-1024-2-bf16-83 PASS +NATIVE PARITY Q6_K-1024-3-bf16-83 PASS +NATIVE PARITY Q6_K-1024-4-bf16-83 PASS +NATIVE PARITY Q6_K-1024-0-bf16-128 PASS +NATIVE PARITY Q6_K-1024-1-bf16-128 PASS +NATIVE PARITY Q6_K-1024-2-bf16-128 PASS +NATIVE PARITY Q6_K-1024-3-bf16-128 PASS +NATIVE PARITY Q6_K-1024-4-bf16-128 PASS +NATIVE PARITY Q6_K-1024-0-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-1-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-2-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-3-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-4-bf16-2048 PASS +NATIVE PARITY Q6_K-1024-0-f32-7 PASS +NATIVE PARITY Q6_K-1024-1-f32-7 PASS +NATIVE PARITY Q6_K-1024-2-f32-7 PASS +NATIVE PARITY Q6_K-1024-3-f32-7 PASS +NATIVE PARITY Q6_K-1024-4-f32-7 PASS +NATIVE PARITY Q6_K-1024-0-f32-83 PASS +NATIVE PARITY Q6_K-1024-1-f32-83 PASS +NATIVE PARITY Q6_K-1024-2-f32-83 PASS +NATIVE PARITY Q6_K-1024-3-f32-83 PASS +NATIVE PARITY Q6_K-1024-4-f32-83 PASS +NATIVE PARITY Q6_K-1024-0-f32-128 PASS +NATIVE PARITY Q6_K-1024-1-f32-128 PASS +NATIVE PARITY Q6_K-1024-2-f32-128 PASS +NATIVE PARITY Q6_K-1024-3-f32-128 PASS +NATIVE PARITY Q6_K-1024-4-f32-128 PASS +NATIVE PARITY Q6_K-1024-0-f32-2048 PASS +NATIVE PARITY Q6_K-1024-1-f32-2048 PASS +NATIVE PARITY Q6_K-1024-2-f32-2048 PASS +NATIVE PARITY Q6_K-1024-3-f32-2048 PASS +NATIVE PARITY Q6_K-1024-4-f32-2048 PASS diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-public.log new file mode 100644 index 000000000..427beea82 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-public.log @@ -0,0 +1,13 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=2 q6_wmma=1 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=2 q6_wmma=1 tokens= 99 102 7 124 +PUBLIC WMMA PASS: 1024 logits, token-exact, max_abs_error=0 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-build.log new file mode 100644 index 000000000..e65b43233 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-build.log @@ -0,0 +1,4 @@ +[1/4] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[2/4] Linking HIP static library libvllm.a +[3/4] Linking HIP executable tests/test_backend_cross_device +[4/4] Linking HIP executable tests/test_capi_rocm_quant_wmma diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-focused.log new file mode 100644 index 000000000..d749c9e2c --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-focused.log @@ -0,0 +1,6 @@ +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +[doctest] test cases: 4 | 4 passed | 0 failed | 57 skipped +[doctest] assertions: 46 | 46 passed | 0 failed | +[doctest] Status: SUCCESS! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-public.log new file mode 100644 index 000000000..427beea82 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/logs/rdna3-wmma-review-restored-public.log @@ -0,0 +1,13 @@ +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=0 q6_wmma=0 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=0 q6_wmma=0 tokens= 99 102 7 124 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=16 q4_wmma=2 q6_wmma=1 tokens= 102 7 124 7 +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC prompt=37 q4_wmma=2 q6_wmma=1 tokens= 99 102 7 124 +PUBLIC WMMA PASS: 1024 logits, token-exact, max_abs_error=0 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-corrupt-output.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-corrupt-output.log new file mode 100644 index 000000000..050f27519 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-corrupt-output.log @@ -0,0 +1,5 @@ +AssertionError: Tensor-likes are not close! + +Mismatched elements: 1 / 5376 (0.0%) +Greatest absolute difference: inf at index (0,) (up to 1 allowed) +Greatest relative difference: inf at index (0,) (up to 0.1 allowed) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-finite-output-results.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-finite-output-results.json new file mode 100644 index 000000000..8b7a1ebf3 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-finite-output-results.json @@ -0,0 +1,6 @@ +{ + "verdict": "PASS", + "mutation": "finite native output changed to 10000.0", + "comparison_error": "Tensor-likes are not close!\n\nMismatched elements: 1 / 5376 (0.0%)\nGreatest absolute difference: 10000.0 at index (0,) (up to 1 allowed)\nGreatest relative difference: 18528.0 at index (0,) (up to 0.1 allowed)", + "restored_sha256": "6048b5a368f048cec6145d2d46edbdaa9b01bae86a1d9daec7ab025095508918" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-input-hash.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-input-hash.log new file mode 100644 index 000000000..036643f28 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-input-hash.log @@ -0,0 +1 @@ +ValueError: changed activation bytes: Q4_K-256-0-f16-7 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-missing-case.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-missing-case.log new file mode 100644 index 000000000..23c9d23d0 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-missing-case.log @@ -0,0 +1 @@ +ValueError: native case coverage differs from the complete primary manifest diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-mutation-results.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-mutation-results.json new file mode 100644 index 000000000..07da1eef5 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-mutation-results.json @@ -0,0 +1,31 @@ +[ + { + "mutation": "mmq-unchanged", + "failed": false, + "error": null + }, + { + "mutation": "mmq-missing-case", + "failed": true, + "error": "ValueError: native case coverage differs from the complete primary manifest", + "restored": true + }, + { + "mutation": "mmq-output-dtype", + "failed": true, + "error": "ValueError: native output dtype differs from the explicit adaptation", + "restored": true + }, + { + "mutation": "mmq-corrupt-output", + "failed": true, + "error": "AssertionError: Tensor-likes are not close!\n\nMismatched elements: 1 / 5376 (0.0%)\nGreatest absolute difference: inf at index (0,) (up to 1 allowed)\nGreatest relative difference: inf at index (0,) (up to 0.1 allowed)", + "restored": true + }, + { + "mutation": "mmq-input-hash", + "failed": true, + "error": "ValueError: changed activation bytes: Q4_K-256-0-f16-7", + "restored": true + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-output-dtype.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-output-dtype.log new file mode 100644 index 000000000..b54bb62c5 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/mmq-output-dtype.log @@ -0,0 +1 @@ +ValueError: native output dtype differs from the explicit adaptation diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-build-provenance.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-build-provenance.json new file mode 100644 index 000000000..358ab7876 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-build-provenance.json @@ -0,0 +1,35 @@ +{ + "head": "c3fe98ba6c55ce71e75746e1b944a27640464e0f", + "status": "", + "compiler": "AMD clang version 23.0.0git (https://github.com/ROCm/llvm-project.git 8f497e0992fb7513f7f78a6f6b6f1056c375e961)\nTarget: x86_64-unknown-linux-gnu\nThread model: posix\nInstalledDir: /opt/rocm/core-10.0/lib/llvm/bin\n", + "files": { + "/home/vikash/vllm.cpp-rdna3-wmma-review/src/vt/rocm/rocm_grouped_gemm.hip": { + "bytes": 92976, + "sha256": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-review/include/vt/rocm/rocm_quant_wmma_arch.h": { + "bytes": 1265, + "sha256": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review/CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o": { + "bytes": 445688, + "sha256": "9e568d93072f5e8a4b4d19ebd1a5b6fb2ca586d814a4437a5f127ec07ccd7bda" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review/tests/test_backend_cross_device": { + "bytes": 33335488, + "sha256": "7a0c025495d2ee96a6524ccba5808ba02ba38829721d88e5608582ebbfc10295" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review/tests/test_capi_rocm_quant_wmma": { + "bytes": 32243080, + "sha256": "95be875bf5468d2ced858c0db285bf3120caea258b3c0b77661cd8bbc015d6ec" + }, + "/home/vikash/vllm.cpp-rdna3-wmma-review/build-rdna3-wmma-review/tests/rocm_quant_wmma_capture": { + "bytes": 32213608, + "sha256": "dbb903ab1f975a3e5f0c79702f51376b2b1e84fb9c8eb3e2b57bab62435a3352" + }, + "/opt/rocm/include/rocwmma/internal/wmma_impl.hpp": { + "bytes": 142214, + "sha256": "ae8d7771d037979371e6029b7e4b1627cdeb5a53d300ca65371bf1731aea8688" + } + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-output-deduplication.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-output-deduplication.json new file mode 100644 index 000000000..94537aebf --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/native-output-deduplication.json @@ -0,0 +1,6 @@ +{ + "deduplicated_files": 240, + "all_bytes_verified_identical": true, + "retained_directory": "/home/vikash/oracle/rdna3-wmma-latest/mmq-native", + "own_capture_directory": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-review-capture" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/receipt-manifest.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/receipt-manifest.json new file mode 100644 index 000000000..a6efd94df --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/receipt-manifest.json @@ -0,0 +1,279 @@ +{ + "selection": "Bounded review report, gate log copies, mutation results, and restoration evidence. Copy adaptations are explicit per file. Full ISA, raw matrices, and duplicate comparison JSON remain at the recorded source paths.", + "files": { + "review-report.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/review-report.json", + "bytes": 19556, + "sha256": "0756bc8af9132833d90db6b84301d7d75755021fa8a02317d7076d3d7bb0a417" + }, + "arch-mutation-results.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-mutation-results.json", + "bytes": 7169, + "sha256": "fc2eac6bd9bae617231ec9ffe3a0dc9ed07fb82daa3b16796f5f3dbd3464bc9c" + }, + "mmq-mutation-results.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-mutation-results.json", + "bytes": 912, + "sha256": "e2ec70d64ad24142e46e9d766eb7ac016d307c763d70e35660075c49827bb860" + }, + "mmq-finite-output-results.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-finite-output-results.json", + "bytes": 407, + "sha256": "0f638a588fbacc3a219dfe8076620a9bc39a8da2cbc387dd05dc4735e97c1b9c" + }, + "tile-body-identity.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/tile-body-identity.json", + "bytes": 321, + "sha256": "50624963d2c847a629959f98d817e9ee833410e618eb386c5371428d13e4124e" + }, + "implementation-receipt-audit.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/implementation-receipt-audit.json", + "bytes": 2277, + "sha256": "61bfe2f57e707631bd55b91cfe0bfac77b5910c3e714e6b4c67e9d814bf41ac6" + }, + "native-build-provenance.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/native-build-provenance.json", + "bytes": 1789, + "sha256": "1e096221205b015f0f500f8c4344b20743f3793cb368ae3eaa501b35cd58eddc" + }, + "native-output-deduplication.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/native-output-deduplication.json", + "bytes": 247, + "sha256": "61dfca1ab2e0d7f0ee6e0c06ae0ab5a70f946fc3be82a040b6eb076ecf296e62" + }, + "arch-reject-valid-features.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-reject-valid-features.log", + "bytes": 1390, + "sha256": "b9f3f4345d37b82953cf4919a9bd36a64559c7f4e396ac76c55386092da815b4" + }, + "arch-remove-gfx1100.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-remove-gfx1100.log", + "bytes": 1162, + "sha256": "2e5574f569f0bda48783e0b550fb560b68933563de3300c38bd91f2ce7572b2d" + }, + "arch-attention-gfx1100.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-attention-gfx1100.log", + "bytes": 929, + "sha256": "122853ca648670e9dae45149d7ed4d70774b6327177b0859e490cb7efc5782aa" + }, + "arch-unchanged.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-unchanged.log", + "bytes": 295, + "sha256": "6650220a546c7b6d0f9a5b8a408d08746167e8e876aae8140002c106beb8d7f6" + }, + "arch-remove-gfx1201.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-remove-gfx1201.log", + "bytes": 952, + "sha256": "c8442838f40d1696a6d8150ea43e059899a91b403544b0ad44c4277948cd7226" + }, + "arch-ignore-invalid-features.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-ignore-invalid-features.log", + "bytes": 2088, + "sha256": "d505d8f7dd9067a93bc38f811ced05ae6cbbfcdc98785ab4783facbee580ef37" + }, + "arch-remove-gfx1200.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-remove-gfx1200.log", + "bytes": 945, + "sha256": "8720a6da62fb61069b2172d55ab0bc0e989ae4197c8677e6e52390b971fceac8" + }, + "arch-admit-unmeasured-gfx11.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/arch-admit-unmeasured-gfx11.log", + "bytes": 2249, + "sha256": "71138e4ca4a5cc981cf6af8c791e7f5d9130739b486711842a37ef653f071f75" + }, + "mmq-input-hash.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-input-hash.log", + "bytes": 55, + "sha256": "51cfc1042a30457032729933e9d1254bade5045d6c4c0c707c08a980204a7889" + }, + "mmq-output-dtype.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-output-dtype.log", + "bytes": 69, + "sha256": "a96dcf0da181f0abdf7f37157877f7d5c96e397f4800f15c40b9d8198df299bb" + }, + "mmq-missing-case.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-missing-case.log", + "bytes": 76, + "sha256": "e68967153fec50fd8e8c1d200b54d1273fe31f9d6965628ec0d9ff1415e2a150" + }, + "mmq-corrupt-output.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/mmq-corrupt-output.log", + "bytes": 216, + "sha256": "d9f8deff1e30887fe75b685df117a204de1c0c203929aa4710c068ec067cb9a2" + }, + "admission-build.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-build.log", + "bytes": 432, + "sha256": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a" + }, + "admission-focused.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-focused.log", + "bytes": 4446, + "sha256": "3ef7f2123810482900d85fb62ee90ba5b4f2f8369b669bf852bba1402ef7464e" + }, + "admission-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-public.log", + "bytes": 1030, + "sha256": "7166cab659b3876b5b1ca714f1ff0f4bb30f523aa6cf6c361f4f98381a36b32d" + }, + "admission-restoration.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-restoration.json", + "bytes": 222, + "sha256": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1" + }, + "delete-q4-build.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-build.log", + "bytes": 432, + "sha256": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a" + }, + "delete-q4-focused.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-focused.log", + "bytes": 2745, + "sha256": "4953d2e2e4ef70f267c809785ce01e3fa6757fffd2fbd3fdfea75b9bb4a2560b" + }, + "delete-q4-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-public.log", + "bytes": 1344, + "sha256": "1a15379b24f53b4dc5245b4b279ef45c4fa386b93c4bb097d6d00e2204b3a592" + }, + "delete-q4-restoration.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-restoration.json", + "bytes": 222, + "sha256": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1" + }, + "delete-q6-build.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-build.log", + "bytes": 432, + "sha256": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a" + }, + "delete-q6-focused.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-focused.log", + "bytes": 2748, + "sha256": "53d7d6d7817415d24db0df92deda060a82ba6c98fb08c61c2b3f1e22e14824df" + }, + "delete-q6-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-public.log", + "bytes": 1291, + "sha256": "95be0cebe5d9fe2ac1193e83abf451352dfc6bfecd45dfa7758b01461ce7802c", + "raw_source_sha256": "ee7ca061b7c078bb5b42a1298e203cbfd1061b934d42ab280186fd45d1a25629", + "raw_source_bytes": 1292, + "copy_adaptation": "Trailing line whitespace and trailing blank lines removed to satisfy git diff --check. Raw source retained at source path." + }, + "delete-q6-restoration.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-restoration.json", + "bytes": 222, + "sha256": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1" + }, + "delete-q6-zero-build.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-build.log", + "bytes": 432, + "sha256": "a584afbd4e06ed967938817a425d488e94bfcf30913cb5d19167591c0b683278" + }, + "delete-q6-zero-focused.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-focused.log", + "bytes": 2751, + "sha256": "aa38909d22a84a281a36bd58b2dfda422e9b1baf6f63f5c421956b38a9395d3c" + }, + "delete-q6-zero-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-public.log", + "bytes": 1344, + "sha256": "5c8c17181ee74898938a4465b8b9a716b8f5168253d25f1e1f64615838069a4b" + }, + "delete-q6-zero-restoration.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-restoration.json", + "bytes": 222, + "sha256": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1" + }, + "scalar-control-build.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-build.log", + "bytes": 432, + "sha256": "a584afbd4e06ed967938817a425d488e94bfcf30913cb5d19167591c0b683278" + }, + "scalar-control-focused.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-focused.log", + "bytes": 4470, + "sha256": "13a1036c611f53b496a169442bfbf99e08c086a784bade52881c09a5028d23a9" + }, + "scalar-control-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-public.log", + "bytes": 553, + "sha256": "22dd1fd3ff10eaed51bcb62bc002d2517fac339a80ea9d832acb10254ad69ae2" + }, + "scalar-control-restoration.json": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-restoration.json", + "bytes": 222, + "sha256": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1" + }, + "logs/rdna3-wmma-review-configure.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-configure.log", + "bytes": 1899, + "sha256": "6b25996fe2760a2d90599afc1d5d76c8840953e5f10bb4ac042c5ee66a4be638", + "raw_source_sha256": "55cf035001f760b8c7df1b7ec297c56daa174f4f962523a91aceb09388b7939e", + "raw_source_bytes": 1904, + "copy_adaptation": "Trailing line whitespace and trailing blank lines removed to satisfy git diff --check. Raw source retained at source path." + }, + "logs/rdna3-wmma-review-arch-full.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-arch-full.log", + "bytes": 298, + "sha256": "c379abc214ea72cd18194c463d169e9651334fb3d8519afb8236fe9821caed16" + }, + "logs/rdna3-wmma-review-full-hip.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-full-hip.log", + "bytes": 4302, + "sha256": "26c4409c88162ef1ccaeb26455cfdad7fe6f2fe03325fe9b6256f92e8571990c" + }, + "logs/rdna3-wmma-review-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-public.log", + "bytes": 1098, + "sha256": "e254626f04443f04e63c501353531943e9e5a2b29e7a39df96fd4bbaa6c85c39" + }, + "logs/rdna3-wmma-review-full-preflight.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-full-preflight.log", + "bytes": 14764, + "sha256": "ec1450ee19fe4edfa4dfb96b5a4d86b376f8c4e9b6e2e7ab99db701c3b6ddf3b" + }, + "logs/rdna3-wmma-review-focused-default.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-focused-default.log", + "bytes": 295, + "sha256": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047" + }, + "logs/rdna3-wmma-review-focused-scalar.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-focused-scalar.log", + "bytes": 295, + "sha256": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047" + }, + "logs/rdna3-wmma-review-own-comparison.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-own-comparison.log", + "bytes": 9200, + "sha256": "a146fac589f94b5db0dc91582392c1e76c0ce68d089126dae0bed720465e0766" + }, + "logs/rdna3-wmma-review-restored-build.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-restored-build.log", + "bytes": 247, + "sha256": "5302a6eda06711320e54f375c63d6731225181ea3486836cf04ff8dd6a108af0" + }, + "logs/rdna3-wmma-review-restored-focused.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-restored-focused.log", + "bytes": 295, + "sha256": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047" + }, + "logs/rdna3-wmma-review-restored-public.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-restored-public.log", + "bytes": 1098, + "sha256": "e254626f04443f04e63c501353531943e9e5a2b29e7a39df96fd4bbaa6c85c39" + }, + "logs/rdna3-wmma-review-mutation-q6.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-mutation-q6.log", + "bytes": 1750, + "sha256": "bdf1f97fb39f8a78ec56d3a5016df5664c917b62a5f47a9ca1873bd4af384689", + "raw_source_sha256": "3a84f4313b45e9ca02e2f029f35bc9e6e88de46c9ecc7ff39fcf400106418b0e", + "raw_source_bytes": 1752, + "copy_adaptation": "Trailing line whitespace and trailing blank lines removed to satisfy git diff --check. Raw source retained at source path." + }, + "logs/rdna3-wmma-review-mutation-q6-zero.log": { + "source": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/logs/rdna3-wmma-review-mutation-q6-zero.log", + "bytes": 1087, + "sha256": "085b5aff7622298e7cf350b5d459ea9bf5e8615046c3771ec1aacdee954b4e65" + } + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/review-report.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/review-report.json new file mode 100644 index 000000000..199af120b --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/review-report.json @@ -0,0 +1,440 @@ +{ + "findings": "NONE", + "verdict": "PASS", + "reviewed_implementation_sha": "c3fe98ba6c55ce71e75746e1b944a27640464e0f", + "base_sha": "cef9f821632eb33156bb7d24a0a85eeab7f7484a", + "committed_spec_ancestor": "a5b5c92f2604386fcf162d5e12a42988f412db3b", + "separate_evidence_commit_reviewed_statically": "c176168cbbdcca700b6346ebb6a1914033b85eda", + "scope": "Ten implementation files, then the evidence-only commit. Full executable gates ran on the unchanged implementation SHA. No performance conclusion or completed G4 claim is part of this review.", + "static_review": { + "tile_bodies": "Both executing device bodies are byte-identical to base; see tile-body-identity.json.", + "architecture": "Compile and runtime admission add exactly gfx1100; gfx1200/gfx1201 remain admitted. Other gfx11 names are refused. The attention predicate is unchanged.", + "reachability": "include/vllm.h completion -> src/capi/vllm_c.cpp:1000 add_request -> src/vllm/v1/worker/gpu/runner.cpp:3155 ModelRegistry::Forward -> qwen3_5_dense.cpp:273 ForwardDevice -> qwen3_5.cpp DenseMlpBlock -> MatmulBT -> src/vt/ops.cpp:192 MatmulBTQuant -> rocm_grouped_gemm.hip launch sites.", + "upstream": "Read plugin source tests/test_kernels.py::test_mmq and tests/utils.py::seed_everything, linear.py selection, ops.py entry, and installed HIP-generated gguf_kernel.hip:221, mmq_hip.cuh:490/591. Read rocWMMA int8 gfx11 specialization at internal/wmma_impl.hpp:602-634 and current llama.cpp mma.cuh RDNA3 layouts.", + "fixtures": "Original 20 Q4/Q6 tensors cover 240 cases, tokens 7/83/128/2048, widths 256/1024, F16/BF16/F32 inputs, seed zero, and unchanged upstream tolerances. Native F32-to-F16 narrowing is explicit; BF16 output remains native.", + "instruction_evidence": "Eight signed-int8 v_wmma_i32_16x16x16_iu8 instructions in the independently built gfx1100 object.", + "evidence_commit": "All 15 manifest artifacts match recorded byte counts and SHA256. Source-chain line anchors resolve in the installed HIP-transformed plugin source. The spec correctly retains SPIKE and pending G4/review at that commit." + }, + "full_gate": { + "immutable_head": "c3fe98ba6c55ce71e75746e1b944a27640464e0f", + "build_flags": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_CXX_COMPILER": "/usr/bin/c++", + "CMAKE_HIP_ARCHITECTURES": "gfx1100;gfx1100;gfx1100;gfx1100", + "CMAKE_HIP_COMPILER": "/opt/rocm/lib/llvm/bin/clang++", + "CMAKE_HIP_FLAGS": "--rocm-path=/opt/rocm", + "VLLM_CPP_HIP_ARCHITECTURES": "gfx1100", + "CMAKE_HOME_DIRECTORY": "/home/vikash/vllm.cpp-rdna3-wmma-review" + }, + "environment": { + "GPU_LOCK": "/home/vikash/gpu.lock", + "HIP_VISIBLE_DEVICES": "0", + "ROCR_VISIBLE_DEVICES": "0", + "VT_ROCM_QUANT_WMMA": "unset, except explicit separate scalar controls", + "GIT_CONFIG_GLOBAL": "/dev/null" + }, + "hip": { + "command": "flock /home/vikash/gpu.lock env -u VT_ROCM_QUANT_WMMA HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 ctest --test-dir build-rdna3-wmma-review -R 'rocm|cross_device' --output-on-failure -j 1", + "exit": 0, + "registered": 29, + "executed": 24, + "skips": 5, + "seconds": 34.27, + "log": "logs/rdna3-wmma-review-full-hip.log" + }, + "public": { + "command": "flock /home/vikash/gpu.lock env -u VT_ROCM_QUANT_WMMA HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 build-rdna3-wmma-review/tests/test_capi_rocm_quant_wmma", + "exit": 0, + "prompt_tokens": [ + 16, + 37 + ], + "q4_calls_per_prompt": 2, + "q6_calls_per_prompt": 1, + "logits": 1024, + "max_abs_error": 0, + "token_exact": true, + "log": "logs/rdna3-wmma-review-public.log" + }, + "arch": { + "command": "build-rdna3-wmma-review/tests/test_rocm_arch", + "exit": 0, + "cases": 16, + "assertions": 109, + "log": "logs/rdna3-wmma-review-arch-full.log" + }, + "preflight": { + "command": "GIT_CONFIG_GLOBAL=/dev/null scripts/agent-preflight.sh --staged", + "exit": 0, + "failed_checks": 0, + "compiled_units": 8, + "skips": [ + "test_qwen3_capture_tools", + "test_qwen3_capture_outputs", + "test_ltx25_render_compare", + "test_ltx25_absolute_reference", + "test_ltx25_prompt_adherence", + "test_ltx25_adherence_detail_loss", + "test_convert_glm5_next_gguf", + "check-arm-isa-build.py", + "check-cpu-isa-build.py", + "check-cuda-fat-gencode.py", + "check-pr-size.py", + "check-triton-aot-multiarch.py" + ], + "skips_are_passes": false, + "baseline_pair": "The reviewer initial and scratch initial preflights have exactly the same 12 skipped checks; the operator supplied the same baseline disposition.", + "log": "logs/rdna3-wmma-review-full-preflight.log" + } + }, + "additional_hardware_evidence": { + "focused_default": { + "cases": 4, + "assertions": 46, + "exit": 0 + }, + "focused_scalar_separate_process": { + "cases": 4, + "assertions": 46, + "exit": 0 + }, + "independent_native_capture": { + "cases": 240, + "primary_and_dense_comparisons": "PASS", + "all_output_seals_equal_implementer_capture": true, + "report": "mmq-review-capture/report.json", + "comparison": "mmq-review-capture/comparison.json" + } + }, + "mutation_evidence": { + "architecture": "Seven CPU policy mutations fail the unchanged new architecture test, restoring each header byte-for-byte; arch-mutation-results.json.", + "mmq": "Missing case, explicit dtype mismatch, changed activation hash, and corrupt output fail. A finite wrong output of 10000 also fails tolerance comparison. Input and result symlinks and bytes are restored.", + "gpu": { + "admission": [ + { + "mutation": "admission", + "modified_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "98f7b0f2b15140244b4126449950c6a8538e8d0017d62844f79df0489cb64c46", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + }, + "build": { + "command": [ + "cmake", + "--build", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", + "-j", + "4", + "--target", + "test_capi_rocm_quant_wmma", + "test_backend_cross_device" + ], + "exit": 0, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-build.log" + }, + "focused": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", + "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-focused.log" + }, + "public": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/admission-public.log" + }, + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + } + } + ], + "delete-q4": [ + { + "mutation": "delete-q4", + "modified_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "d8001df3ef3f4cf83d6e18b4db40c1c91553722cc9bf4b1d4bd909162d5635ed" + }, + "build": { + "command": [ + "cmake", + "--build", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", + "-j", + "4", + "--target", + "test_capi_rocm_quant_wmma", + "test_backend_cross_device" + ], + "exit": 0, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-build.log" + }, + "focused": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", + "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-focused.log" + }, + "public": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q4-public.log" + }, + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + } + } + ], + "delete-q6": [ + { + "mutation": "delete-q6", + "modified_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "acce9a1bdf154af4b0267072936c722c74443cf5a734061c220f639593a041d0" + }, + "build": { + "command": [ + "cmake", + "--build", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", + "-j", + "4", + "--target", + "test_capi_rocm_quant_wmma", + "test_backend_cross_device" + ], + "exit": 0, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-build.log" + }, + "focused": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", + "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-focused.log" + }, + "public": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-public.log" + }, + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + } + } + ], + "delete-q6-zero": [ + { + "mutation": "delete-q6-zero", + "modified_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "b580ecc904358e8e22e82ad4d2980446a52e353d3a9821cd9446e4332d72be6d" + }, + "build": { + "command": [ + "cmake", + "--build", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", + "-j", + "4", + "--target", + "test_capi_rocm_quant_wmma", + "test_backend_cross_device" + ], + "exit": 0, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-build.log" + }, + "focused": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", + "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-focused.log" + }, + "public": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/delete-q6-zero-public.log" + }, + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + } + } + ], + "scalar-control": [ + { + "mutation": "scalar-control", + "modified_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "6fd986567e75ab2e67cb3081fea99cc8d20eef31125fdb68b067cc87e8e08d2c" + }, + "build": { + "command": [ + "cmake", + "--build", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", + "-j", + "4", + "--target", + "test_capi_rocm_quant_wmma", + "test_backend_cross_device" + ], + "exit": 0, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-build.log" + }, + "focused": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "VT_ROCM_QUANT_WMMA=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", + "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-focused.log" + }, + "public": { + "command": [ + "flock", + "/home/vikash/gpu.lock", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "timeout", + "180", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma" + ], + "exit": 1, + "log": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma/scalar-control-public.log" + }, + "restored_sha256": { + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" + } + } + ] + }, + "harness_failures": "The first raw Q6 run exposed a more specific output-dependent failure than the harness accepted: invalid generated token 2147483647. That runtime rejection was subsequently recorded. The first finite Q6 mutation did not compile because hipMemsetAsync is nodiscard; adding an explicit success check fixed only the scratch mutation harness, after which public tokens differed with counters active. Compile errors are not counted as mutation evidence." + }, + "restoration": { + "source_worktrees_clean": true, + "tracked_files_match_implementation_head": true, + "restored_build_exit": 0, + "restored_focused_exit": 0, + "restored_public_exit": 0, + "restored_public_max_abs_error": 0 + }, + "remaining_concern": [ + "G4 full-model correctness, same-binary measurements, primary production comparison, and quant-matched llama.cpp comparison remain operator work. This PASS does not accept a performance claim or declare the row DONE.", + "The 12 baseline preflight skips are unexecuted checks: seven missing-NumPy suites and five commands requiring arguments. They require explicit per-change qualification at publication; exit 0 is not a --fail-on-skip pass.", + "The five HIP skips are three absent model-fixture tests and two tests requiring two visible GPUs. Device 0 was deliberately the only visible GPU, matching the baseline." + ], + "cleanup": { + "removed_review_worktrees": [ + "/home/vikash/vllm.cpp-rdna3-wmma-review", + "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch" + ], + "removed_local_review_branches": true, + "native_output_duplicates": 240, + "measured_bytes_retained_through_symlinks": true, + "review_artifacts_retained": "/home/vikash/oracle/rdna3-wmma-latest/review-wmma" + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-build.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-build.log new file mode 100644 index 000000000..0a4bca473 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-build.log @@ -0,0 +1,5 @@ +["cmake", "--build", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch", "-j", "4", "--target", "test_capi_rocm_quant_wmma", "test_backend_cross_device"] +[1/4] Building HIP object CMakeFiles/vllm.dir/src/vt/rocm/rocm_grouped_gemm.hip.o +[2/4] Linking HIP static library libvllm.a +[3/4] Linking HIP executable tests/test_backend_cross_device +[4/4] Linking HIP executable tests/test_capi_rocm_quant_wmma diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-focused.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-focused.log new file mode 100644 index 000000000..36e1790ab --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-focused.log @@ -0,0 +1,67 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "VT_ROCM_QUANT_WMMA=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_backend_cross_device", "--test-case=*keep-quant*WMMA*,*keep-quant GEMM matches the CPU oracle when*"] +[doctest] doctest version is "2.5.2" +[doctest] run with "--help" for options +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3687: +TEST CASE: keep-quant Q6_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3776: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3776: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3786: +TEST CASE: keep-quant Q4_K WMMA tile arm matches the CPU oracle on gfx1100 and RDNA4 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3870: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: bf16_out := false + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3870: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: bf16_out := true + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3883: +TEST CASE: keep-quant GEMM matches the CPU oracle when M and N are not multiples of 16 + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3974: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3974: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: std::string(f.name) := q4_K + +=============================================================================== +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:3993: +TEST CASE: keep-quant GEMM matches the CPU oracle when only one of M/N is misaligned + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: std::string(shape.label) := M misaligned, N aligned (bottom-strip-only remainder) + std::string(f.name) := q4_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q6_K + +/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/tests/vt/test_backend_cross_device.cpp:4092: ERROR: CHECK( (wmma_after > wmma_before) == ExpectQuantWmma() ) is NOT correct! + values: CHECK( true == false ) + logged: std::string(shape.label) := N misaligned, M aligned (right-strip-only remainder) + std::string(f.name) := q4_K + +=============================================================================== +[doctest] test cases: 4 | 0 passed | 4 failed | 57 skipped +[doctest] assertions: 46 | 36 passed | 10 failed | +[doctest] Status: FAILURE! diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-public.log b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-public.log new file mode 100644 index 000000000..10dfb6807 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-public.log @@ -0,0 +1,5 @@ +["flock", "/home/vikash/gpu.lock", "env", "-u", "VT_ROCM_QUANT_WMMA", "HIP_VISIBLE_DEVICES=0", "ROCR_VISIBLE_DEVICES=0", "timeout", "180", "/home/vikash/vllm.cpp-rdna3-wmma-review-scratch/build-rdna3-wmma-review-scratch/tests/test_capi_rocm_quant_wmma"] +engine: device placement: --fit resolved NO placement: the model has no routed-expert layers, so a placement has nothing to move +vllm.cpp: Asynchronous scheduling is disabled (max_concurrent_batches=1) +PUBLIC WMMA FAILED: Q4_K public WMMA dispatch mismatch +PUBLIC WMMA FAILED: scalar control failed diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-restoration.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-restoration.json new file mode 100644 index 000000000..8a7500e26 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/scalar-control-restoration.json @@ -0,0 +1,4 @@ +{ + "include/vt/rocm/rocm_quant_wmma_arch.h": "b5e429843c9e8bb082e5b747bc03fe7ad8e50adc9edeab9b6c0c7ec9b7f80d10", + "src/vt/rocm/rocm_grouped_gemm.hip": "22c2f031af3db6454d73d7cc6213861ed4af4907e1d53c82c2b621dc81deb367" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/review/tile-body-identity.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/tile-body-identity.json new file mode 100644 index 000000000..a6e498e4e --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/review/tile-body-identity.json @@ -0,0 +1,12 @@ +{ + "KQuantGemmKWmmaQ4K": { + "byte_identical": true, + "sha256": "090e16b33feabc7efba823c326b116c9fa3e95490658b0237888248f5650e1ef", + "bytes": 3930 + }, + "KQuantGemmKWmmaQ6K": { + "byte_identical": true, + "sha256": "bf40816808a467fe31a41ca743dd609425fbce27e254ca9063c889b7a466f921", + "bytes": 4577 + } +} From d6e40c91f634a041c873c7a04516d55c4d05772a Mon Sep 17 00:00:00 2001 From: Vikash Loomba Date: Sun, 13 Sep 2026 22:20:15 -0700 Subject: [PATCH 5/8] record(KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3): close measured gfx1100 admission Record exact model input and output identity, interleaved native results, prefill-only WMMA traces, and the operator's 240 original matrix cases. Close architecture admission with the reviewed implementation unchanged. Keep every full-model floor and clock-attribution obligation open under ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6. Flatten evidence into the classifier's permitted per-run layout. Preserve source bytes and hashes, update copy maps, and reconcile only the parent's gfx1100 record. No product, test, tool, or checker changes are included. The full preflight exits 1 on the known onboarding fixture's branch-name assumption and retains 12 skips. Its unchanged 39-case suite passes with GIT_CONFIG_GLOBAL=/dev/null. Scoped record, link, hash, role, and staged checks pass. Prior independent implementation review remains PASS. Closes ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ. Closes ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:GPT-6 [Codex] --- .../ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md | 6 +- .../ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK.md | 19 + .../ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6.md | 21 + .agents/specs/kernel-quant-ciq-gemm-rocm.md | 4 +- .agents/specs/rocm-rdna3-quant-wmma.md | 63 +- .../rocm-rdna3-quant-wmma/README.md | 48 +- .../evidence-path-map.json | 1436 +++++ .../final-records-anchors.log.gz | Bin 0 -> 249 bytes .../final-records-classification.json | 11 + .../final-records-conflicts.log.gz | Bin 0 -> 160 bytes .../final-records-integrity.json | 8 + .../final-records-now.log.gz | Bin 0 -> 77 bytes .../final-records-onboard-resolved.log.gz | Bin 0 -> 56 bytes .../final-records-preflight.log.gz | Bin 0 -> 2615 bytes .../final-records-prompt.log.gz | Bin 0 -> 58 bytes .../final-records-record.log.gz | Bin 0 -> 101 bytes .../final-records-role.log.gz | Bin 0 -> 294 bytes .../final-records-verification.json | 143 + .../model-adapters-HANDOFF.md | 98 + ...-adapters-adapter-manifest-gguf-trace.json | 961 +++ .../model-adapters-adapter-manifest.json | 879 +++ ...odel-adapters-aggregate_oracle_captures.py | 114 + .../model-adapters-build_llama_adapter.sh | 9 + .../model-adapters-capture_llama.cpp.txt | 317 + .../model-adapters-capture_primary.py | 232 + .../model-adapters-closed_loop_metrics.py | 290 + ...s-history-trace-gguf-fix-before-HANDOFF.md | 93 + ...ory-trace-gguf-fix-before-archive-map.json | 17 + ...-trace-gguf-fix-before-run_native_trace.py | 103 + ...odel-adapters-llama-model-monitor.jsonl.gz | Bin 0 -> 4677 bytes ...adapters-llama-model-monitor.stderr.log.gz | Bin 0 -> 7222 bytes ...adapters-llama-model-monitor.stdout.log.gz | Bin 0 -> 125 bytes .../model-adapters-llama-model.json | 3073 +++++++++ .../model-adapters-monitor_command.py | 187 + ...ive-ab-model-gguf-off1.cpu-contention.json | 15 + ...native-ab-model-gguf-off1.monitor.jsonl.gz | Bin 0 -> 6983 bytes ...e-ab-model-gguf-off1.monitor.stderr.log.gz | Bin 0 -> 465 bytes ...e-ab-model-gguf-off1.monitor.stdout.log.gz | Bin 0 -> 687 bytes ...e-ab-model-gguf-off1.output-token-ids.json | 1 + ...ive-ab-model-gguf-off2.cpu-contention.json | 15 + ...native-ab-model-gguf-off2.monitor.jsonl.gz | Bin 0 -> 7343 bytes ...e-ab-model-gguf-off2.monitor.stderr.log.gz | Bin 0 -> 465 bytes ...e-ab-model-gguf-off2.monitor.stdout.log.gz | Bin 0 -> 687 bytes ...e-ab-model-gguf-off2.output-token-ids.json | 1 + ...ive-ab-model-gguf-off3.cpu-contention.json | 15 + ...native-ab-model-gguf-off3.monitor.jsonl.gz | Bin 0 -> 7406 bytes ...e-ab-model-gguf-off3.monitor.stderr.log.gz | Bin 0 -> 465 bytes ...e-ab-model-gguf-off3.monitor.stdout.log.gz | Bin 0 -> 686 bytes ...e-ab-model-gguf-off3.output-token-ids.json | 1 + ...tive-ab-model-gguf-on1.cpu-contention.json | 15 + ...-native-ab-model-gguf-on1.monitor.jsonl.gz | Bin 0 -> 6925 bytes ...ve-ab-model-gguf-on1.monitor.stderr.log.gz | Bin 0 -> 465 bytes ...ve-ab-model-gguf-on1.monitor.stdout.log.gz | Bin 0 -> 686 bytes ...ve-ab-model-gguf-on1.output-token-ids.json | 1 + ...tive-ab-model-gguf-on2.cpu-contention.json | 15 + ...-native-ab-model-gguf-on2.monitor.jsonl.gz | Bin 0 -> 6939 bytes ...ve-ab-model-gguf-on2.monitor.stderr.log.gz | Bin 0 -> 465 bytes ...ve-ab-model-gguf-on2.monitor.stdout.log.gz | Bin 0 -> 685 bytes ...ve-ab-model-gguf-on2.output-token-ids.json | 1 + ...tive-ab-model-gguf-on3.cpu-contention.json | 15 + ...-native-ab-model-gguf-on3.monitor.jsonl.gz | Bin 0 -> 6847 bytes ...ve-ab-model-gguf-on3.monitor.stderr.log.gz | Bin 0 -> 465 bytes ...ve-ab-model-gguf-on3.monitor.stdout.log.gz | Bin 0 -> 683 bytes ...ve-ab-model-gguf-on3.output-token-ids.json | 1 + ...adapters-native-ab-model-gguf-summary.json | 2679 ++++++++ ...s-native-ab-model-gguf-workload-eight.json | 98 + ...rs-native-ab-model-on1.cpu-contention.json | 15 + ...pters-native-ab-model-on1.monitor.jsonl.gz | Bin 0 -> 2426 bytes ...-native-ab-model-on1.monitor.stderr.log.gz | Bin 0 -> 357 bytes ...-native-ab-model-on1.monitor.stdout.log.gz | Bin 0 -> 20 bytes ...odel-adapters-native-ab-model-summary.json | 658 ++ ...adapters-native-trace-off-monitor.jsonl.gz | Bin 0 -> 12309 bytes ...ers-native-trace-off-monitor.stderr.log.gz | Bin 0 -> 1235 bytes ...ers-native-trace-off-monitor.stdout.log.gz | Bin 0 -> 691 bytes ...ers-native-trace-off-output-token-ids.json | 1 + ...rs-native-trace-off-recipe-and-result.json | 550 ++ ...off-rocprof-native-off_kernel_stats.csv.gz | Bin 0 -> 2310 bytes ...-adapters-native-trace-on-monitor.jsonl.gz | Bin 0 -> 11309 bytes ...ters-native-trace-on-monitor.stderr.log.gz | Bin 0 -> 1236 bytes ...ters-native-trace-on-monitor.stdout.log.gz | Bin 0 -> 690 bytes ...ters-native-trace-on-output-token-ids.json | 1 + ...ers-native-trace-on-recipe-and-result.json | 552 ++ ...e-on-rocprof-native-on_kernel_stats.csv.gz | Bin 0 -> 2430 bytes ...el-adapters-native-trace-pair-summary.json | 563 ++ .../model-adapters-oracle-whole-workload.json | 5717 +++++++++++++++++ ...pters-primary-model-retry-monitor.jsonl.gz | Bin 0 -> 35892 bytes ...-primary-model-retry-monitor.stderr.log.gz | Bin 0 -> 806 bytes ...-primary-model-retry-monitor.stdout.log.gz | Bin 0 -> 4485 bytes .../model-adapters-primary-model-retry.json | 3506 ++++++++++ .../model-adapters-primary-model.json | 1041 +++ ...model-adapters-primary-retry-teardown.json | 16 + .../model-adapters-prompt-ids-retry.json | 372 ++ ...el-adapters-python-gpu-named-under-lock.sh | 23 + ...model-adapters-retry_primary_under_lock.sh | 12 + .../model-adapters-run_native_ab.py | 259 + .../model-adapters-run_native_trace.py | 109 + .../model-adapters-seal_adapter_manifest.py | 82 + ...-adapters-seal_trace_model_fix_manifest.py | 55 + ...model-adapters-trace-gguf-model-check.json | 13 + .../model-derived-measurements.json | 1161 ++++ .../model-logs-HANDOFF.md | 108 + .../model-logs-build-provenance.json | 277 + .../model-logs-build-vllm.sh | 30 + .../model-logs-import-provenance.json | 65 + .../model-logs-llama-build-command.sh | 10 + .../model-logs-llama-build.log.gz | Bin 0 -> 3742 bytes .../model-logs-llama-configure.log.gz | Bin 0 -> 926 bytes ...s-plugin-source-artifact-verification.json | 9 + .../model-logs-primary-model.log.gz | Bin 0 -> 5513 bytes .../model-logs-qwen35-4b-upstream-config.json | 104 + .../model-logs-vllm-build-attempt3.log.gz | Bin 0 -> 82870 bytes .../model-native-prompt-identity-README.md | 56 + ...model-native-prompt-identity-commands.json | 178 + ...odel-native-prompt-identity-compare_ids.py | 43 + ...pt-identity-compiler-version.stdout.txt.gz | Bin 0 -> 214 bytes ...t-identity-green-exact-id-match.stdout.txt | 37 + ...l-native-prompt-identity-inputs-after.json | 98 + ...-native-prompt-identity-inputs-before.json | 98 + ...-prompt-identity-linker-version.stdout.txt | 4 + ...model-native-prompt-identity-manifest.json | 126 + ...tive-prompt-identity-native-ids.stdout.txt | 1477 +++++ ...-prompt-identity-native_prompt_ids.cpp.txt | 57 + ...dentity-product-source-equality.stderr.txt | 0 ...dentity-product-source-equality.stdout.txt | 0 ...entity-red-same-count-id-change.stdout.txt | 44 + .../model-native-prompt-identity-result.json | 79 + ...odel-native-prompt-identity-run_receipt.py | 147 + .../model-operator-mmq-capture.log.gz | Bin 0 -> 681 bytes .../model-operator-mmq-compare.log.gz | Bin 0 -> 683 bytes .../model-operator-mmq-comparison.json | 2405 +++++++ .../model-operator-mmq-report.json | 1445 +++++ .../model-receipt-manifest.json | 1015 +++ .../rocm-rdna3-quant-wmma/model-summary.md | 268 + ...-broad.log => operator-baseline-broad.log} | 0 ...used.log => operator-baseline-focused.log} | 0 ...pt.json => operator-baseline-receipt.json} | 0 ...e-arch.log => operator-candidate-arch.log} | 0 ...build.log => operator-candidate-build.log} | 0 ...tests.log => operator-candidate-tests.log} | 0 ...ator-numpy-suites-numpy-only-summary.json} | 0 ...son => operator-numpy-suites-summary.json} | 0 ...py-suites-test_convert_glm5_next_gguf.log} | 0 ...-suites-test_ltx25_absolute_reference.log} | 0 ...ites-test_ltx25_adherence_detail_loss.log} | 0 ...py-suites-test_ltx25_prompt_adherence.log} | 0 ...umpy-suites-test_ltx25_render_compare.log} | 0 ...test_qwen3_capture_outputs-numpy-only.log} | 0 ...mpy-suites-test_qwen3_capture_outputs.log} | 0 ...s-test_qwen3_capture_tools-numpy-only.log} | 0 ...numpy-suites-test_qwen3_capture_tools.log} | 0 ...> operator-preflight-original-failure.log} | 0 .../receipt.json => operator-receipt.json} | 45 +- ...ame.log => operator-role-after-rename.log} | 0 ...n-build.log => review-admission-build.log} | 0 ...cused.log => review-admission-focused.log} | 0 ...public.log => review-admission-public.log} | 0 ...json => review-admission-restoration.json} | 0 ...=> review-arch-admit-unmeasured-gfx11.log} | 0 ....log => review-arch-attention-gfx1100.log} | 0 ...> review-arch-ignore-invalid-features.log} | 0 ...json => review-arch-mutation-results.json} | 0 ... => review-arch-reject-valid-features.log} | 0 ...100.log => review-arch-remove-gfx1100.log} | 0 ...200.log => review-arch-remove-gfx1200.log} | 0 ...201.log => review-arch-remove-gfx1201.log} | 0 ...nchanged.log => review-arch-unchanged.log} | 0 ...4-build.log => review-delete-q4-build.log} | 0 ...cused.log => review-delete-q4-focused.log} | 0 ...public.log => review-delete-q4-public.log} | 0 ...json => review-delete-q4-restoration.json} | 0 ...6-build.log => review-delete-q6-build.log} | 0 ...cused.log => review-delete-q6-focused.log} | 0 ...public.log => review-delete-q6-public.log} | 0 ...json => review-delete-q6-restoration.json} | 0 ...ld.log => review-delete-q6-zero-build.log} | 0 ....log => review-delete-q6-zero-focused.log} | 0 ...c.log => review-delete-q6-zero-public.log} | 0 ...=> review-delete-q6-zero-restoration.json} | 0 ... review-implementation-receipt-audit.json} | 0 ...view-logs-rdna3-wmma-review-arch-full.log} | 0 ...view-logs-rdna3-wmma-review-configure.log} | 0 ...ogs-rdna3-wmma-review-focused-default.log} | 0 ...logs-rdna3-wmma-review-focused-scalar.log} | 0 ...eview-logs-rdna3-wmma-review-full-hip.log} | 0 ...logs-rdna3-wmma-review-full-preflight.log} | 0 ...gs-rdna3-wmma-review-mutation-q6-zero.log} | 0 ...ew-logs-rdna3-wmma-review-mutation-q6.log} | 0 ...logs-rdna3-wmma-review-own-comparison.log} | 0 ... review-logs-rdna3-wmma-review-public.log} | 0 ...logs-rdna3-wmma-review-restored-build.log} | 0 ...gs-rdna3-wmma-review-restored-focused.log} | 0 ...ogs-rdna3-wmma-review-restored-public.log} | 0 ...tput.log => review-mmq-corrupt-output.log} | 0 ... => review-mmq-finite-output-results.json} | 0 ...put-hash.log => review-mmq-input-hash.log} | 0 ...g-case.log => review-mmq-missing-case.log} | 0 ....json => review-mmq-mutation-results.json} | 0 ...-dtype.log => review-mmq-output-dtype.log} | 0 ...on => review-native-build-provenance.json} | 0 ...> review-native-output-deduplication.json} | 0 ...fest.json => review-receipt-manifest.json} | 109 +- ...-report.json => review-review-report.json} | 0 ...ld.log => review-scalar-control-build.log} | 0 ....log => review-scalar-control-focused.log} | 0 ...c.log => review-scalar-control-public.log} | 0 ...=> review-scalar-control-restoration.json} | 0 ...ty.json => review-tile-body-identity.json} | 0 207 files changed, 33942 insertions(+), 103 deletions(-) create mode 100644 .agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK.md create mode 100644 .agents/issues/_owed/ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6.md create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/evidence-path-map.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-anchors.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-classification.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-conflicts.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-integrity.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-now.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-onboard-resolved.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-preflight.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-prompt.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-record.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-role.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-verification.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-HANDOFF.md create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest-gguf-trace.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-aggregate_oracle_captures.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-build_llama_adapter.sh create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_llama.cpp.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_primary.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-closed_loop_metrics.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-HANDOFF.md create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-archive-map.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-run_native_trace.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-monitor_command.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-summary.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-workload-eight.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.cpu-contention.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-summary.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-recipe-and-result.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-rocprof-native-off_kernel_stats.csv.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-output-token-ids.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-recipe-and-result.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-rocprof-native-on_kernel_stats.csv.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-pair-summary.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-oracle-whole-workload.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model-retry-monitor.jsonl.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model-retry-monitor.stderr.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model-retry-monitor.stdout.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model-retry.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-retry-teardown.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-prompt-ids-retry.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-python-gpu-named-under-lock.sh create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-retry_primary_under_lock.sh create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_ab.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_trace.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_adapter_manifest.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_trace_model_fix_manifest.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-trace-gguf-model-check.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-derived-measurements.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-HANDOFF.md create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-build-provenance.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-build-vllm.sh create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-import-provenance.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-llama-build-command.sh create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-llama-build.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-llama-configure.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-plugin-source-artifact-verification.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-primary-model.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-qwen35-4b-upstream-config.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-vllm-build-attempt3.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-README.md create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-commands.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-compare_ids.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-compiler-version.stdout.txt.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-green-exact-id-match.stdout.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-inputs-after.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-inputs-before.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-linker-version.stdout.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-manifest.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-native-ids.stdout.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-native_prompt_ids.cpp.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-product-source-equality.stderr.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-product-source-equality.stdout.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-red-same-count-id-change.stdout.txt create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-result.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-native-prompt-identity-run_receipt.py create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-operator-mmq-capture.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-operator-mmq-compare.log.gz create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-operator-mmq-comparison.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-operator-mmq-report.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-receipt-manifest.json create mode 100644 docs/bench-evidence/rocm-rdna3-quant-wmma/model-summary.md rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/baseline-broad.log => operator-baseline-broad.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/baseline-focused.log => operator-baseline-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/baseline-receipt.json => operator-baseline-receipt.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/candidate-arch.log => operator-candidate-arch.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/candidate-build.log => operator-candidate-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/candidate-tests.log => operator-candidate-tests.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/numpy-only-summary.json => operator-numpy-suites-numpy-only-summary.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/summary.json => operator-numpy-suites-summary.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_convert_glm5_next_gguf.log => operator-numpy-suites-test_convert_glm5_next_gguf.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_ltx25_absolute_reference.log => operator-numpy-suites-test_ltx25_absolute_reference.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_ltx25_adherence_detail_loss.log => operator-numpy-suites-test_ltx25_adherence_detail_loss.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_ltx25_prompt_adherence.log => operator-numpy-suites-test_ltx25_prompt_adherence.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_ltx25_render_compare.log => operator-numpy-suites-test_ltx25_render_compare.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log => operator-numpy-suites-test_qwen3_capture_outputs-numpy-only.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_qwen3_capture_outputs.log => operator-numpy-suites-test_qwen3_capture_outputs.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log => operator-numpy-suites-test_qwen3_capture_tools-numpy-only.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/numpy-suites/test_qwen3_capture_tools.log => operator-numpy-suites-test_qwen3_capture_tools.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/preflight-original-failure.log => operator-preflight-original-failure.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/receipt.json => operator-receipt.json} (94%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{operator/role-after-rename.log => operator-role-after-rename.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/admission-build.log => review-admission-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/admission-focused.log => review-admission-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/admission-public.log => review-admission-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/admission-restoration.json => review-admission-restoration.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-admit-unmeasured-gfx11.log => review-arch-admit-unmeasured-gfx11.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-attention-gfx1100.log => review-arch-attention-gfx1100.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-ignore-invalid-features.log => review-arch-ignore-invalid-features.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-mutation-results.json => review-arch-mutation-results.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-reject-valid-features.log => review-arch-reject-valid-features.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-remove-gfx1100.log => review-arch-remove-gfx1100.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-remove-gfx1200.log => review-arch-remove-gfx1200.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-remove-gfx1201.log => review-arch-remove-gfx1201.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/arch-unchanged.log => review-arch-unchanged.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q4-build.log => review-delete-q4-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q4-focused.log => review-delete-q4-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q4-public.log => review-delete-q4-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q4-restoration.json => review-delete-q4-restoration.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-build.log => review-delete-q6-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-focused.log => review-delete-q6-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-public.log => review-delete-q6-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-restoration.json => review-delete-q6-restoration.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-zero-build.log => review-delete-q6-zero-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-zero-focused.log => review-delete-q6-zero-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-zero-public.log => review-delete-q6-zero-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/delete-q6-zero-restoration.json => review-delete-q6-zero-restoration.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/implementation-receipt-audit.json => review-implementation-receipt-audit.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-arch-full.log => review-logs-rdna3-wmma-review-arch-full.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-configure.log => review-logs-rdna3-wmma-review-configure.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-focused-default.log => review-logs-rdna3-wmma-review-focused-default.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-focused-scalar.log => review-logs-rdna3-wmma-review-focused-scalar.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-full-hip.log => review-logs-rdna3-wmma-review-full-hip.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-full-preflight.log => review-logs-rdna3-wmma-review-full-preflight.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-mutation-q6-zero.log => review-logs-rdna3-wmma-review-mutation-q6-zero.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-mutation-q6.log => review-logs-rdna3-wmma-review-mutation-q6.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-own-comparison.log => review-logs-rdna3-wmma-review-own-comparison.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-public.log => review-logs-rdna3-wmma-review-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-restored-build.log => review-logs-rdna3-wmma-review-restored-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-restored-focused.log => review-logs-rdna3-wmma-review-restored-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/logs/rdna3-wmma-review-restored-public.log => review-logs-rdna3-wmma-review-restored-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/mmq-corrupt-output.log => review-mmq-corrupt-output.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/mmq-finite-output-results.json => review-mmq-finite-output-results.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/mmq-input-hash.log => review-mmq-input-hash.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/mmq-missing-case.log => review-mmq-missing-case.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/mmq-mutation-results.json => review-mmq-mutation-results.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/mmq-output-dtype.log => review-mmq-output-dtype.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/native-build-provenance.json => review-native-build-provenance.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/native-output-deduplication.json => review-native-output-deduplication.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/receipt-manifest.json => review-receipt-manifest.json} (83%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/review-report.json => review-review-report.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/scalar-control-build.log => review-scalar-control-build.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/scalar-control-focused.log => review-scalar-control-focused.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/scalar-control-public.log => review-scalar-control-public.log} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/scalar-control-restoration.json => review-scalar-control-restoration.json} (100%) rename docs/bench-evidence/rocm-rdna3-quant-wmma/{review/tile-body-identity.json => review-tile-body-identity.json} (100%) diff --git a/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md b/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md index 341d266b5..10eae28e2 100644 --- a/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md +++ b/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ.md @@ -1,14 +1,14 @@ ID: ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ Title: Enable the existing quantized WMMA prefill kernels on gfx1100 Row: KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 -State: OPEN +State: CLOSED Kind: feature GitHub: - Mirror: PENDING Availability: FULL Created: 2026-09-13 Updated: 2026-09-13 -Closed: - +Closed: 2026-09-13 ## Problem @@ -16,4 +16,4 @@ Current main compiles and dispatches its generic rocWMMA Q4_K and Q6_K prefill k ## Resolution -- +13 September 2026: The landing change admits physical gfx1100 through the existing Q4_K and Q6_K WMMA dispatch. Independent review and operator verification pass the architecture, 240 original matrix, and public 1024-logit gates. Eight exact native prompt arrays and all generated IDs in six native processes match both task-pinned oracles. Native traces contain 152 WMMA calls per prefill and zero during decode. The observed prefill ratio is 1.2891 under dynamic clocks. docs/bench-evidence/rocm-rdna3-quant-wmma/model-summary.md retains every value, ratio, failed attempt, and measurement limit. ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6 remains open for whole-model floors and accepted clock attribution. diff --git a/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK.md b/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK.md new file mode 100644 index 000000000..74be88b95 --- /dev/null +++ b/.agents/issues/KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3/ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK.md @@ -0,0 +1,19 @@ +ID: ISSUE-LOCAL-01M2F51K16TDAC95DM1VEKBBCK +Title: Classify the RDNA3 WMMA evidence in the permitted per-run layout +Row: KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3 +State: CLOSED +Kind: bug +GitHub: - +Mirror: PENDING +Availability: FULL +Created: 2026-09-13 +Updated: 2026-09-13 +Closed: 2026-09-13 + +## Problem + +The row stores operator and review receipts in nested directories. check-pr-size.py rejects those paths because BENCH_EVIDENCE_RUN permits one run directory followed by a filename. Flatten the receipt filenames, preserve original bytes and source locations, update local links and manifests, and validate the exact integrated diff without changing the checker. + +## Resolution + +13 September 2026: The landing change flattens all RDNA3 WMMA receipts into the permitted per-run directory. evidence-path-map.json preserves original filenames, byte hashes, and scoped manifest adaptations. Local links and copy manifests resolve the flat paths. Source locations and original measurements remain unchanged. The checker itself is unchanged. Classification of the final integrated diff is recorded with the final records verification receipt. diff --git a/.agents/issues/_owed/ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6.md b/.agents/issues/_owed/ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6.md new file mode 100644 index 000000000..957519173 --- /dev/null +++ b/.agents/issues/_owed/ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6.md @@ -0,0 +1,21 @@ +ID: ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6 +Title: Resolve the remaining gfx1100 Qwen3.5-4B Q4_K_M performance gaps +Row: - +State: OPEN +Kind: performance +GitHub: - +Mirror: PENDING +Availability: FULL +Created: 2026-09-13 +Updated: 2026-09-13 +Closed: - + +## Problem + +The completed RDNA3 WMMA experiment preserves exact tokens and improves its recorded same-binary prefill metric. Native whole-workload throughput and decode remain below the task-pinned primary and llama.cpp comparisons. Tail latency, sampled memory against llama.cpp, matching oracle traces, comparable timing windows, and accepted clock attribution remain unresolved. Establish the missing measurements and close every below-floor axis on the identical retained workload. Do not treat the architecture-admission result as full-model parity or as a performance ceiling. + +The next traceable candidates are Gated DeltaNet prefill and scalar remainder work at input lengths 183 and 174. Native `src/vt/rocm/rocm_gdn_scan.hip:55-104` runs a serial token recurrence for prefill and decode, and the native trace contains `GdnScanK`. At the task-pinned primary revision, `vllm/model_executor/layers/mamba/gdn/qwen_gdn_linear_attn.py:240-324` selects a chunk-prefill backend whose native method calls `fla_chunk_gated_delta_rule`. These source differences are hypotheses. Matching generated oracle traces and accepted clock windows must establish the executed paths and their costs before ranking them. + +## Resolution + +- diff --git a/.agents/specs/kernel-quant-ciq-gemm-rocm.md b/.agents/specs/kernel-quant-ciq-gemm-rocm.md index 0308ce9f0..3ca3b2df0 100644 --- a/.agents/specs/kernel-quant-ciq-gemm-rocm.md +++ b/.agents/specs/kernel-quant-ciq-gemm-rocm.md @@ -247,8 +247,8 @@ scale layout through the tile op. ## Owed -- gfx1100 (RDNA3) WMMA tile: `VikashLoomba`'s audit on #2109, a separate row - and spec. +- gfx1100 (RDNA3) WMMA admission: measured and completed by this change in + [KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3](rocm-rdna3-quant-wmma.md). - gfx1151 (RDNA3.5) WMMA tile: needs Strix Halo hardware to verify; a separate row and spec. - hipBLASLt per-superblock scale support: unmeasured; recorded as an open diff --git a/.agents/specs/rocm-rdna3-quant-wmma.md b/.agents/specs/rocm-rdna3-quant-wmma.md index 57b80c7cc..1f61b8627 100644 --- a/.agents/specs/rocm-rdna3-quant-wmma.md +++ b/.agents/specs/rocm-rdna3-quant-wmma.md @@ -9,15 +9,19 @@ Commit this specification before implementation. ## Now -`SPIKE`. Implementation `c3fe98ba6c55ce71e75746e1b944a27640464e0f` passes -G1-G3 on physical gfx1100. Both executing tile bodies remain unchanged. -The 240 original primary fixture cases pass with their existing tolerances. -The public gate matches every captured logit and completion token against its -scalar control. Fresh review passes with no findings, and the operator's -independent HIP gate passes with the same five baseline resource skips. -G4 remains with the coordinating operator. +`DONE` for architecture admission, 13 September 2026. +Implementation `c3fe98ba6c55ce71e75746e1b944a27640464e0f` passes G1-G3 and +fresh mutation review. Both executing tile bodies remain unchanged. +The operator independently reproduces the hardware, public, and 240 original +primary fixture gates. G5 retains its explicitly recorded baseline resource skips. +G4 executes both task-pinned oracles and six native processes with exact input +and generated token IDs. Native traces prove prefill-only WMMA dispatch. +The observed prefill ratio is 1.2891 with WMMA enabled. +Full-model floors remain failing, and accepted clock attribution remains pending +under the dedicated issue in `## Owed`. [Implementation receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/README.md) -record the commands, red-first results, full HIP gate, and mutations. +and [model receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/model-summary.md) +record commands, results, mutations, and measurement limits. ## Scope @@ -140,8 +144,13 @@ Do not silently broaden the row or claim an unrun gate passed. ## Owed -This row owns its implementation and verification gates. No correctness or -performance claim exists until its corresponding receipts are recorded. +`ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6` owns the remaining full-model +performance gaps on the retained gfx1100 workload. It includes every below-floor +axis, matching oracle traces, comparable timing windows, and accepted clock +attribution. The [model record](../../docs/bench-evidence/rocm-rdna3-quant-wmma/model-summary.md) +retains all measured values, ratios, and limits. This debt is separate from +architecture admission and from the deferred Qwen state characterization. + Other formats, grouped expert tiles, and other RDNA3 devices keep their prior owners. The parent RDNA4 row and its open cooperative-tile work remain separate. @@ -149,4 +158,36 @@ owners. The parent RDNA4 row and its open cooperative-tile work remain separate. | ID | Upstream source | Local anchor | Tests and evidence | Spec | State | Owner | Issue | |---|---|---|---|---|---|---|---| -| `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3` | Pinned llama.cpp RDNA3 integer WMMA; rocWMMA 2.2.1 gfx11 fragments | `KQuantGemmKWmmaQ4K`, `KQuantGemmKWmmaQ6K` | [G1-G3 receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/README.md), G4 and fresh review pending | [This spec](rocm-rdna3-quant-wmma.md) | `SPIKE` | RDNA3 helper; coordinating operator | `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ` | +| `KERNEL-QUANT-CIQ-GEMM-ROCM-RDNA3` | Pinned llama.cpp RDNA3 integer WMMA; rocWMMA 2.2.1 gfx11 fragments | `KQuantGemmKWmmaQ4K`, `KQuantGemmKWmmaQ6K` | [G1-G5 receipts](../../docs/bench-evidence/rocm-rdna3-quant-wmma/README.md), independent review and operator verification | [This spec](rocm-rdna3-quant-wmma.md) | `DONE` | RDNA3 helper; coordinating operator | `ISSUE-LOCAL-01M2F0PQWGSCXG0N4951NF9DPZ` | + +## Outcome + +The existing generic rocWMMA tile bodies execute correctly on physical gfx1100. +Architecture admission is sufficient. No arithmetic or fragment-layout repair +is needed. The Q4_K and Q6_K bodies retain their original byte hashes. +The original 240 plugin cases preserve every input mode and tolerance. +The public gate matches 1024 logits and eight completion tokens against scalar. +Independent mutations detect missing admission, missing launches, scalar-control +changes, and finite corrupted output. The operator repeats the applicable gates. + +The full-model workload uses eight requests with 183 and 174 input tokens in +alternating order. Exact input arrays and all 128 generated IDs match the primary +and llama.cpp captures. All six native process outputs match both oracles. +The enabled trace contains 152 WMMA calls per prefill and zero during decode. +The scalar trace contains no WMMA calls. + +Enabled and disabled median prefill rates are 224.12 and 173.86 tokens/s. +Median first-token latencies are 386.51 and 617.09 ms. +Mean per-stream decode rates are 53.33 and 53.15 tokens/s. +Sampled whole-device memory peaks are 4.864 and 4.857 GB. +These dynamic-clock observations motivate retaining the enabled default. +They do not establish clock-attributed performance or full-model parity. +The dedicated performance issue retains every below-floor axis and missing +measurement obligation. No apparent performance limit is accepted. + +The default architecture predicate adds only measured gfx1100 to gfx1200/gfx1201. +Other gfx11 devices remain excluded because they lack their own physical evidence. +The attention predicate remains unchanged because its gfx1100 body is not enabled. +The scalar environment override remains available for reproducible controls. +Output dtypes, quantization formats, and tile arithmetic retain their prior values +because this row proves admission without changing those contracts. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md b/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md index 12d6e2e1e..453f8ede8 100644 --- a/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/README.md @@ -23,10 +23,14 @@ Every GPU invocation held `/home/vikash/gpu.lock` and selected device 0 with | G5 broad HIP gate | Satisfied with the five baseline resource skips listed below. All 29 registered tests have zero failures after a clean rebuild. | [HIP gate](hip-gate-green.log) | | G5 repository preflight | Executed with exit 0 and 12 unchanged skips. The skips remain unavailable checks, rather than passes. | [First](preflight-first.log), [staged](preflight-staged.log) | | G5 implementer mutations | Satisfied. Four CPU policy mutations and four public production mutations fail. The immutable original files retain their hashes. | [CPU mutations](cpu-mutations.json), [production mutations](production-mutations.json) | -| G4 full-model correctness and performance | Pending the coordinating operator's model and oracle runs. No throughput, latency, or memory claim is made here. | Owning spec | -| G5 fresh review | Satisfied. Independent review of the immutable implementation passes with no findings. | [Review report](review/review-report.json) | -| G5 operator HIP verification | Satisfied with the same five baseline resource skips. The independent build and all 29 registered tests exit 0. | [Operator receipt](operator/receipt.json) | -| G5 operator repository preflight | Full run exits 1 on branch-role classification. The role check exits 0 after the branch rename. Seven skipped NumPy suites subsequently execute with exit 0. | [Original failure](operator/preflight-original-failure.log), [resolution](operator/role-after-rename.log), [supplement](operator/receipt.json) | +| G4 full-model correctness | Satisfied. All eight native prompt arrays match the primary. All 128 generated IDs in each of six native processes match both oracles. | [Model receipts](model-summary.md) | +| G4 same-binary measurement | Executed. Prefill records 224.12 versus 173.86 tokens/s. Accepted clock attribution remains pending. | [Values and limits](model-summary.md#recorded-axes) | +| G4 whole-model floor | Failing on the recorded below-floor axes. Comparable oracle traces and clock-window reproduction remain pending. | [Owned gaps](../../../.agents/issues/_owed/ISSUE-LOCAL-01M2F4WCD6ZK5VH5S8TF83APD6.md) | +| G4 model path | Satisfied. Each of eight enabled prefill windows contains 152 WMMA calls. Disabled and decode windows contain zero. | [Trace summary](model-adapters-native-trace-pair-summary.json) | +| G5 fresh review | Satisfied. Independent review of the immutable implementation passes with no findings. | [Review report](review-review-report.json) | +| G5 operator HIP verification | Satisfied with the same five baseline resource skips. The independent build and all 29 registered tests exit 0. | [Operator receipt](operator-receipt.json) | +| G5 operator repository preflight | Full run exits 1 on branch-role classification. The role check exits 0 after the branch rename. Seven skipped NumPy suites subsequently execute with exit 0. | [Original failure](operator-preflight-original-failure.log), [resolution](operator-role-after-rename.log), [supplement](operator-receipt.json) | +| G5 operator original upstream fixture gate | Satisfied. The operator independently captures and compares all 240 original matrix cases. | [Capture](model-operator-mmq-report.json), [comparison](model-operator-mmq-comparison.json) | The existing physical fixtures preserve the partial four-wave block at `M=32, N=48, K=512`, both output dtypes, joint tails, and separate bottom and @@ -217,16 +221,16 @@ The reviewer mutates seven architecture policies, five MMQ guarantees, admission both production launch sites, and the scalar override. Every intended defect fails its gate. The additional Q6_K mutation writes finite zeros while retaining the counter, and the public token comparison fails. Source hashes match the -immutable implementation after restoration. The [review report](review/review-report.json) +immutable implementation after restoration. The [review report](review-review-report.json) records commands, exits, scratch harness corrections, and remaining obligations. -The [receipt manifest](review/receipt-manifest.json) seals the bounded log copies and records whitespace-only copy adaptations. +The [receipt manifest](review-receipt-manifest.json) seals the bounded log copies and records whitespace-only copy adaptations. Full ISA and raw matrices remain at their recorded source locations. The operator separately builds Release binaries in `/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator`. The architecture suite passes 16 cases and 109 assertions. The broad HIP gate exits 0 in 34.00 seconds, with 29 registered tests and the -same five baseline resource skips. The [operator receipt](operator/receipt.json) +same five baseline resource skips. The [operator receipt](operator-receipt.json) seals build, binary, baseline, and candidate evidence. Its target recipe is a reconstruction from CMakeCache and CTest registration. The original complete build argument list was not retained. @@ -245,13 +249,35 @@ failures because its installed vLLM metadata conflicts with the fixture runtime. The isolated rerun exposes only existing NumPy and `numpy.libs` through `PYTHONPATH`, using `/usr/bin/python3`. The Qwen tools suite passes 17 cases, and the outputs suite passes 32 cases. All seven suites exit 0 without package, -checker, or repository changes. The [initial results](operator/numpy-suites/summary.json) -and [isolated reruns](operator/numpy-suites/numpy-only-summary.json) preserve +checker, or repository changes. The [initial results](operator-numpy-suites-summary.json) +and [isolated reruns](operator-numpy-suites-numpy-only-summary.json) preserve both dispositions. The original preflight's skipped results remain unchanged. The prompt-adherence suite still skips five real-checkpoint subcases because -`VT_LTX25_ADHERENCE_MODEL` is unset. The [operator receipt](operator/receipt.json) +`VT_LTX25_ADHERENCE_MODEL` is unset. The [operator receipt](operator-receipt.json) names each case. Four argument-dependent checks concern unchanged ARM, CPU, CUDA, and Triton build surfaces. They are outside this HIP admission change. The fifth, PR size, remains pending the final integrated diff. -G4 model correctness and measurements remain pending with the operator. +The [G4 model record](model-summary.md) contains completed correctness, native +path traces, and measurements against both task-pinned oracles. +Every below-floor axis remains open in the dedicated performance issue. +The failed primary RPC attempt, later container teardown, and wrong native model +argument retain separate receipts. None is relabeled as a successful process run. + +## Final records verification + +The [final records receipt](final-records-verification.json) records the complete +preflight and the scoped checks after the lifecycle and evidence updates. +The full preflight exits 1 on the unchanged onboarding fixture's branch-name +assumption. The fixture expects `master`, while global Git configuration selects +`main`. The committed spec ancestor records the same baseline failure. +All 39 cases pass with `GIT_CONFIG_GLOBAL=/dev/null`. +The original full run retains 12 skips, with their separate operator resolutions +and remaining resource limits unchanged. + +Record, staged NOW, symbol-anchor, conflict, prompt-contract, and staged-role +checks pass. The source diff against the reviewed implementation is empty for +`include`, `src`, `tests`, and `tools`. +The [path map](evidence-path-map.json) preserves the earlier nested receipt names. +The flattened staged paths classify under the unchanged checker. +The exact commit-range classification is checked before handoff. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/evidence-path-map.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/evidence-path-map.json new file mode 100644 index 000000000..0d8aec816 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/evidence-path-map.json @@ -0,0 +1,1436 @@ +{ + "reason": "The evidence classifier accepts one per-run directory and a filename. Source records retain their external source paths. This map resolves prior copied paths without changing their originals.", + "files": [ + { + "prior_copy": "operator/baseline-broad.log", + "copy": "operator-baseline-broad.log", + "sha256_before_path_update": "09fb787ca37c76cc1b1b4f326c33ebcc2abdeee29e0ddec89490c080e59a901a", + "bytes_before_path_update": 4161, + "sha256_after_path_update": "09fb787ca37c76cc1b1b4f326c33ebcc2abdeee29e0ddec89490c080e59a901a", + "bytes_after_path_update": 4161, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/baseline-focused.log", + "copy": "operator-baseline-focused.log", + "sha256_before_path_update": "b61a72054345f5ac1700b9e4ac06f60df206da24e152f261c355121e0ce695ed", + "bytes_before_path_update": 571, + "sha256_after_path_update": "b61a72054345f5ac1700b9e4ac06f60df206da24e152f261c355121e0ce695ed", + "bytes_after_path_update": 571, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/baseline-receipt.json", + "copy": "operator-baseline-receipt.json", + "sha256_before_path_update": "431c2359f7cfc91e526f2c56e1de2d424a9e8d34552478032ddbbf7eebaa490f", + "bytes_before_path_update": 1561, + "sha256_after_path_update": "431c2359f7cfc91e526f2c56e1de2d424a9e8d34552478032ddbbf7eebaa490f", + "bytes_after_path_update": 1561, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/candidate-arch.log", + "copy": "operator-candidate-arch.log", + "sha256_before_path_update": "c379abc214ea72cd18194c463d169e9651334fb3d8519afb8236fe9821caed16", + "bytes_before_path_update": 298, + "sha256_after_path_update": "c379abc214ea72cd18194c463d169e9651334fb3d8519afb8236fe9821caed16", + "bytes_after_path_update": 298, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/candidate-build.log", + "copy": "operator-candidate-build.log", + "sha256_before_path_update": "29dd8869a86e57d16ab383b8363a469022cf85846a1bb50b209a21bc19d9634e", + "bytes_before_path_update": 1476, + "sha256_after_path_update": "29dd8869a86e57d16ab383b8363a469022cf85846a1bb50b209a21bc19d9634e", + "bytes_after_path_update": 1476, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/candidate-tests.log", + "copy": "operator-candidate-tests.log", + "sha256_before_path_update": "773c6aa335445e86daac0a72724264879f2fbcc1d0d2cbaa15fd2316e6638496", + "bytes_before_path_update": 4292, + "sha256_after_path_update": "773c6aa335445e86daac0a72724264879f2fbcc1d0d2cbaa15fd2316e6638496", + "bytes_after_path_update": 4292, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/numpy-only-summary.json", + "copy": "operator-numpy-suites-numpy-only-summary.json", + "sha256_before_path_update": "aebbb38abf42d409da85e0aa3de3797f8a50e7644916cb0ae99f3e475dcd4e9b", + "bytes_before_path_update": 143, + "sha256_after_path_update": "aebbb38abf42d409da85e0aa3de3797f8a50e7644916cb0ae99f3e475dcd4e9b", + "bytes_after_path_update": 143, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/summary.json", + "copy": "operator-numpy-suites-summary.json", + "sha256_before_path_update": "1301a34c3b4a1ddbd1431de495bf25cfb3787ffd123cc96c7e43b85f25908a7f", + "bytes_before_path_update": 508, + "sha256_after_path_update": "1301a34c3b4a1ddbd1431de495bf25cfb3787ffd123cc96c7e43b85f25908a7f", + "bytes_after_path_update": 508, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_convert_glm5_next_gguf.log", + "copy": "operator-numpy-suites-test_convert_glm5_next_gguf.log", + "sha256_before_path_update": "c7277c96d32273ddae18257eb79e97a06f241066e8175f9d832175f46b17be09", + "bytes_before_path_update": 7328, + "sha256_after_path_update": "c7277c96d32273ddae18257eb79e97a06f241066e8175f9d832175f46b17be09", + "bytes_after_path_update": 7328, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_ltx25_absolute_reference.log", + "copy": "operator-numpy-suites-test_ltx25_absolute_reference.log", + "sha256_before_path_update": "c60b955a1193840d4ef06a7450c16a3f83cef86f4ebed8df2d319fb87c1f5cd6", + "bytes_before_path_update": 4318, + "sha256_after_path_update": "c60b955a1193840d4ef06a7450c16a3f83cef86f4ebed8df2d319fb87c1f5cd6", + "bytes_after_path_update": 4318, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_ltx25_adherence_detail_loss.log", + "copy": "operator-numpy-suites-test_ltx25_adherence_detail_loss.log", + "sha256_before_path_update": "b868c28455caaf78944887455a406d93fe47412b5198b882726da78522bf567e", + "bytes_before_path_update": 8376, + "sha256_after_path_update": "b868c28455caaf78944887455a406d93fe47412b5198b882726da78522bf567e", + "bytes_after_path_update": 8376, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_ltx25_prompt_adherence.log", + "copy": "operator-numpy-suites-test_ltx25_prompt_adherence.log", + "sha256_before_path_update": "66226fb508b845f4a59aa868f3c1da654a35ea7c0afb535e42f057653c6cbdc5", + "bytes_before_path_update": 7594, + "sha256_after_path_update": "66226fb508b845f4a59aa868f3c1da654a35ea7c0afb535e42f057653c6cbdc5", + "bytes_after_path_update": 7594, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_ltx25_render_compare.log", + "copy": "operator-numpy-suites-test_ltx25_render_compare.log", + "sha256_before_path_update": "72e3eed62562f4f3e2562c1102d68847ba01466de0d045095bd8f6365a5ad7e9", + "bytes_before_path_update": 164, + "sha256_after_path_update": "72e3eed62562f4f3e2562c1102d68847ba01466de0d045095bd8f6365a5ad7e9", + "bytes_after_path_update": 164, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_qwen3_capture_outputs-numpy-only.log", + "copy": "operator-numpy-suites-test_qwen3_capture_outputs-numpy-only.log", + "sha256_before_path_update": "14ced4f5d32f2ba7dc94437fc0045ba971cda03ce985016f5a5e48072f66542a", + "bytes_before_path_update": 4972, + "sha256_after_path_update": "14ced4f5d32f2ba7dc94437fc0045ba971cda03ce985016f5a5e48072f66542a", + "bytes_after_path_update": 4972, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_qwen3_capture_outputs.log", + "copy": "operator-numpy-suites-test_qwen3_capture_outputs.log", + "sha256_before_path_update": "22c43fe58915716853f11a2a1c5a2fd29b9fe800cbe0da4f9ed3a5c4b1857ee5", + "bytes_before_path_update": 27959, + "sha256_after_path_update": "22c43fe58915716853f11a2a1c5a2fd29b9fe800cbe0da4f9ed3a5c4b1857ee5", + "bytes_after_path_update": 27959, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_qwen3_capture_tools-numpy-only.log", + "copy": "operator-numpy-suites-test_qwen3_capture_tools-numpy-only.log", + "sha256_before_path_update": "cdb23e47644b3b49a220383a237c9f2ec4fbb25e269387fb8391edf01489f09b", + "bytes_before_path_update": 11245, + "sha256_after_path_update": "cdb23e47644b3b49a220383a237c9f2ec4fbb25e269387fb8391edf01489f09b", + "bytes_after_path_update": 11245, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/numpy-suites/test_qwen3_capture_tools.log", + "copy": "operator-numpy-suites-test_qwen3_capture_tools.log", + "sha256_before_path_update": "8597b7908d8f6da3270a91018187173ebbbd46a6dba5e481f6fd04c78b2571ef", + "bytes_before_path_update": 12258, + "sha256_after_path_update": "8597b7908d8f6da3270a91018187173ebbbd46a6dba5e481f6fd04c78b2571ef", + "bytes_after_path_update": 12258, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/preflight-original-failure.log", + "copy": "operator-preflight-original-failure.log", + "sha256_before_path_update": "5de69dfe39fa8edfc84dd0db93ba05bab138495ff4b07b862d0ccd81aeccaa2a", + "bytes_before_path_update": 10236, + "sha256_after_path_update": "5de69dfe39fa8edfc84dd0db93ba05bab138495ff4b07b862d0ccd81aeccaa2a", + "bytes_after_path_update": 10236, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "operator/receipt.json", + "copy": "operator-receipt.json", + "sha256_before_path_update": "86423341e489e8c634ee4b3b1144ff0fb73da1d53346e4b80c6bbfc46ca81cb6", + "bytes_before_path_update": 19840, + "sha256_after_path_update": "02a7ff22b028f4a995120819b22841a1dffb377d4d650c23e8db65451c9f42ec", + "bytes_after_path_update": 20077, + "adaptation": "local manifest paths and copy root updated" + }, + { + "prior_copy": "operator/role-after-rename.log", + "copy": "operator-role-after-rename.log", + "sha256_before_path_update": "c74252602e074405820799bbdffbc6b37332b79d83492d2ad23850c5089a0236", + "bytes_before_path_update": 459, + "sha256_after_path_update": "c74252602e074405820799bbdffbc6b37332b79d83492d2ad23850c5089a0236", + "bytes_after_path_update": 459, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/admission-build.log", + "copy": "review-admission-build.log", + "sha256_before_path_update": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a", + "bytes_before_path_update": 432, + "sha256_after_path_update": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a", + "bytes_after_path_update": 432, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/admission-focused.log", + "copy": "review-admission-focused.log", + "sha256_before_path_update": "3ef7f2123810482900d85fb62ee90ba5b4f2f8369b669bf852bba1402ef7464e", + "bytes_before_path_update": 4446, + "sha256_after_path_update": "3ef7f2123810482900d85fb62ee90ba5b4f2f8369b669bf852bba1402ef7464e", + "bytes_after_path_update": 4446, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/admission-public.log", + "copy": "review-admission-public.log", + "sha256_before_path_update": "7166cab659b3876b5b1ca714f1ff0f4bb30f523aa6cf6c361f4f98381a36b32d", + "bytes_before_path_update": 1030, + "sha256_after_path_update": "7166cab659b3876b5b1ca714f1ff0f4bb30f523aa6cf6c361f4f98381a36b32d", + "bytes_after_path_update": 1030, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/admission-restoration.json", + "copy": "review-admission-restoration.json", + "sha256_before_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_before_path_update": 222, + "sha256_after_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_after_path_update": 222, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-admit-unmeasured-gfx11.log", + "copy": "review-arch-admit-unmeasured-gfx11.log", + "sha256_before_path_update": "71138e4ca4a5cc981cf6af8c791e7f5d9130739b486711842a37ef653f071f75", + "bytes_before_path_update": 2249, + "sha256_after_path_update": "71138e4ca4a5cc981cf6af8c791e7f5d9130739b486711842a37ef653f071f75", + "bytes_after_path_update": 2249, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-attention-gfx1100.log", + "copy": "review-arch-attention-gfx1100.log", + "sha256_before_path_update": "122853ca648670e9dae45149d7ed4d70774b6327177b0859e490cb7efc5782aa", + "bytes_before_path_update": 929, + "sha256_after_path_update": "122853ca648670e9dae45149d7ed4d70774b6327177b0859e490cb7efc5782aa", + "bytes_after_path_update": 929, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-ignore-invalid-features.log", + "copy": "review-arch-ignore-invalid-features.log", + "sha256_before_path_update": "d505d8f7dd9067a93bc38f811ced05ae6cbbfcdc98785ab4783facbee580ef37", + "bytes_before_path_update": 2088, + "sha256_after_path_update": "d505d8f7dd9067a93bc38f811ced05ae6cbbfcdc98785ab4783facbee580ef37", + "bytes_after_path_update": 2088, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-mutation-results.json", + "copy": "review-arch-mutation-results.json", + "sha256_before_path_update": "fc2eac6bd9bae617231ec9ffe3a0dc9ed07fb82daa3b16796f5f3dbd3464bc9c", + "bytes_before_path_update": 7169, + "sha256_after_path_update": "fc2eac6bd9bae617231ec9ffe3a0dc9ed07fb82daa3b16796f5f3dbd3464bc9c", + "bytes_after_path_update": 7169, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-reject-valid-features.log", + "copy": "review-arch-reject-valid-features.log", + "sha256_before_path_update": "b9f3f4345d37b82953cf4919a9bd36a64559c7f4e396ac76c55386092da815b4", + "bytes_before_path_update": 1390, + "sha256_after_path_update": "b9f3f4345d37b82953cf4919a9bd36a64559c7f4e396ac76c55386092da815b4", + "bytes_after_path_update": 1390, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-remove-gfx1100.log", + "copy": "review-arch-remove-gfx1100.log", + "sha256_before_path_update": "2e5574f569f0bda48783e0b550fb560b68933563de3300c38bd91f2ce7572b2d", + "bytes_before_path_update": 1162, + "sha256_after_path_update": "2e5574f569f0bda48783e0b550fb560b68933563de3300c38bd91f2ce7572b2d", + "bytes_after_path_update": 1162, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-remove-gfx1200.log", + "copy": "review-arch-remove-gfx1200.log", + "sha256_before_path_update": "8720a6da62fb61069b2172d55ab0bc0e989ae4197c8677e6e52390b971fceac8", + "bytes_before_path_update": 945, + "sha256_after_path_update": "8720a6da62fb61069b2172d55ab0bc0e989ae4197c8677e6e52390b971fceac8", + "bytes_after_path_update": 945, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-remove-gfx1201.log", + "copy": "review-arch-remove-gfx1201.log", + "sha256_before_path_update": "c8442838f40d1696a6d8150ea43e059899a91b403544b0ad44c4277948cd7226", + "bytes_before_path_update": 952, + "sha256_after_path_update": "c8442838f40d1696a6d8150ea43e059899a91b403544b0ad44c4277948cd7226", + "bytes_after_path_update": 952, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/arch-unchanged.log", + "copy": "review-arch-unchanged.log", + "sha256_before_path_update": "6650220a546c7b6d0f9a5b8a408d08746167e8e876aae8140002c106beb8d7f6", + "bytes_before_path_update": 295, + "sha256_after_path_update": "6650220a546c7b6d0f9a5b8a408d08746167e8e876aae8140002c106beb8d7f6", + "bytes_after_path_update": 295, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q4-build.log", + "copy": "review-delete-q4-build.log", + "sha256_before_path_update": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a", + "bytes_before_path_update": 432, + "sha256_after_path_update": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a", + "bytes_after_path_update": 432, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q4-focused.log", + "copy": "review-delete-q4-focused.log", + "sha256_before_path_update": "4953d2e2e4ef70f267c809785ce01e3fa6757fffd2fbd3fdfea75b9bb4a2560b", + "bytes_before_path_update": 2745, + "sha256_after_path_update": "4953d2e2e4ef70f267c809785ce01e3fa6757fffd2fbd3fdfea75b9bb4a2560b", + "bytes_after_path_update": 2745, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q4-public.log", + "copy": "review-delete-q4-public.log", + "sha256_before_path_update": "1a15379b24f53b4dc5245b4b279ef45c4fa386b93c4bb097d6d00e2204b3a592", + "bytes_before_path_update": 1344, + "sha256_after_path_update": "1a15379b24f53b4dc5245b4b279ef45c4fa386b93c4bb097d6d00e2204b3a592", + "bytes_after_path_update": 1344, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q4-restoration.json", + "copy": "review-delete-q4-restoration.json", + "sha256_before_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_before_path_update": 222, + "sha256_after_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_after_path_update": 222, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-build.log", + "copy": "review-delete-q6-build.log", + "sha256_before_path_update": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a", + "bytes_before_path_update": 432, + "sha256_after_path_update": "3f994a4883aaf8e05133e1e693323fad570766407721fb90e1137cb1993d633a", + "bytes_after_path_update": 432, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-focused.log", + "copy": "review-delete-q6-focused.log", + "sha256_before_path_update": "53d7d6d7817415d24db0df92deda060a82ba6c98fb08c61c2b3f1e22e14824df", + "bytes_before_path_update": 2748, + "sha256_after_path_update": "53d7d6d7817415d24db0df92deda060a82ba6c98fb08c61c2b3f1e22e14824df", + "bytes_after_path_update": 2748, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-public.log", + "copy": "review-delete-q6-public.log", + "sha256_before_path_update": "95be0cebe5d9fe2ac1193e83abf451352dfc6bfecd45dfa7758b01461ce7802c", + "bytes_before_path_update": 1291, + "sha256_after_path_update": "95be0cebe5d9fe2ac1193e83abf451352dfc6bfecd45dfa7758b01461ce7802c", + "bytes_after_path_update": 1291, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-restoration.json", + "copy": "review-delete-q6-restoration.json", + "sha256_before_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_before_path_update": 222, + "sha256_after_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_after_path_update": 222, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-zero-build.log", + "copy": "review-delete-q6-zero-build.log", + "sha256_before_path_update": "a584afbd4e06ed967938817a425d488e94bfcf30913cb5d19167591c0b683278", + "bytes_before_path_update": 432, + "sha256_after_path_update": "a584afbd4e06ed967938817a425d488e94bfcf30913cb5d19167591c0b683278", + "bytes_after_path_update": 432, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-zero-focused.log", + "copy": "review-delete-q6-zero-focused.log", + "sha256_before_path_update": "aa38909d22a84a281a36bd58b2dfda422e9b1baf6f63f5c421956b38a9395d3c", + "bytes_before_path_update": 2751, + "sha256_after_path_update": "aa38909d22a84a281a36bd58b2dfda422e9b1baf6f63f5c421956b38a9395d3c", + "bytes_after_path_update": 2751, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-zero-public.log", + "copy": "review-delete-q6-zero-public.log", + "sha256_before_path_update": "5c8c17181ee74898938a4465b8b9a716b8f5168253d25f1e1f64615838069a4b", + "bytes_before_path_update": 1344, + "sha256_after_path_update": "5c8c17181ee74898938a4465b8b9a716b8f5168253d25f1e1f64615838069a4b", + "bytes_after_path_update": 1344, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/delete-q6-zero-restoration.json", + "copy": "review-delete-q6-zero-restoration.json", + "sha256_before_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_before_path_update": 222, + "sha256_after_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_after_path_update": 222, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/implementation-receipt-audit.json", + "copy": "review-implementation-receipt-audit.json", + "sha256_before_path_update": "61bfe2f57e707631bd55b91cfe0bfac77b5910c3e714e6b4c67e9d814bf41ac6", + "bytes_before_path_update": 2277, + "sha256_after_path_update": "61bfe2f57e707631bd55b91cfe0bfac77b5910c3e714e6b4c67e9d814bf41ac6", + "bytes_after_path_update": 2277, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-arch-full.log", + "copy": "review-logs-rdna3-wmma-review-arch-full.log", + "sha256_before_path_update": "c379abc214ea72cd18194c463d169e9651334fb3d8519afb8236fe9821caed16", + "bytes_before_path_update": 298, + "sha256_after_path_update": "c379abc214ea72cd18194c463d169e9651334fb3d8519afb8236fe9821caed16", + "bytes_after_path_update": 298, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-configure.log", + "copy": "review-logs-rdna3-wmma-review-configure.log", + "sha256_before_path_update": "6b25996fe2760a2d90599afc1d5d76c8840953e5f10bb4ac042c5ee66a4be638", + "bytes_before_path_update": 1899, + "sha256_after_path_update": "6b25996fe2760a2d90599afc1d5d76c8840953e5f10bb4ac042c5ee66a4be638", + "bytes_after_path_update": 1899, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-focused-default.log", + "copy": "review-logs-rdna3-wmma-review-focused-default.log", + "sha256_before_path_update": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047", + "bytes_before_path_update": 295, + "sha256_after_path_update": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047", + "bytes_after_path_update": 295, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-focused-scalar.log", + "copy": "review-logs-rdna3-wmma-review-focused-scalar.log", + "sha256_before_path_update": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047", + "bytes_before_path_update": 295, + "sha256_after_path_update": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047", + "bytes_after_path_update": 295, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-full-hip.log", + "copy": "review-logs-rdna3-wmma-review-full-hip.log", + "sha256_before_path_update": "26c4409c88162ef1ccaeb26455cfdad7fe6f2fe03325fe9b6256f92e8571990c", + "bytes_before_path_update": 4302, + "sha256_after_path_update": "26c4409c88162ef1ccaeb26455cfdad7fe6f2fe03325fe9b6256f92e8571990c", + "bytes_after_path_update": 4302, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-full-preflight.log", + "copy": "review-logs-rdna3-wmma-review-full-preflight.log", + "sha256_before_path_update": "ec1450ee19fe4edfa4dfb96b5a4d86b376f8c4e9b6e2e7ab99db701c3b6ddf3b", + "bytes_before_path_update": 14764, + "sha256_after_path_update": "ec1450ee19fe4edfa4dfb96b5a4d86b376f8c4e9b6e2e7ab99db701c3b6ddf3b", + "bytes_after_path_update": 14764, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-mutation-q6-zero.log", + "copy": "review-logs-rdna3-wmma-review-mutation-q6-zero.log", + "sha256_before_path_update": "085b5aff7622298e7cf350b5d459ea9bf5e8615046c3771ec1aacdee954b4e65", + "bytes_before_path_update": 1087, + "sha256_after_path_update": "085b5aff7622298e7cf350b5d459ea9bf5e8615046c3771ec1aacdee954b4e65", + "bytes_after_path_update": 1087, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-mutation-q6.log", + "copy": "review-logs-rdna3-wmma-review-mutation-q6.log", + "sha256_before_path_update": "bdf1f97fb39f8a78ec56d3a5016df5664c917b62a5f47a9ca1873bd4af384689", + "bytes_before_path_update": 1750, + "sha256_after_path_update": "bdf1f97fb39f8a78ec56d3a5016df5664c917b62a5f47a9ca1873bd4af384689", + "bytes_after_path_update": 1750, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-own-comparison.log", + "copy": "review-logs-rdna3-wmma-review-own-comparison.log", + "sha256_before_path_update": "a146fac589f94b5db0dc91582392c1e76c0ce68d089126dae0bed720465e0766", + "bytes_before_path_update": 9200, + "sha256_after_path_update": "a146fac589f94b5db0dc91582392c1e76c0ce68d089126dae0bed720465e0766", + "bytes_after_path_update": 9200, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-public.log", + "copy": "review-logs-rdna3-wmma-review-public.log", + "sha256_before_path_update": "e254626f04443f04e63c501353531943e9e5a2b29e7a39df96fd4bbaa6c85c39", + "bytes_before_path_update": 1098, + "sha256_after_path_update": "e254626f04443f04e63c501353531943e9e5a2b29e7a39df96fd4bbaa6c85c39", + "bytes_after_path_update": 1098, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-restored-build.log", + "copy": "review-logs-rdna3-wmma-review-restored-build.log", + "sha256_before_path_update": "5302a6eda06711320e54f375c63d6731225181ea3486836cf04ff8dd6a108af0", + "bytes_before_path_update": 247, + "sha256_after_path_update": "5302a6eda06711320e54f375c63d6731225181ea3486836cf04ff8dd6a108af0", + "bytes_after_path_update": 247, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-restored-focused.log", + "copy": "review-logs-rdna3-wmma-review-restored-focused.log", + "sha256_before_path_update": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047", + "bytes_before_path_update": 295, + "sha256_after_path_update": "ccee473aed799e96afda40fd490df4b66b77d0495cdf151b0ff6b17458f86047", + "bytes_after_path_update": 295, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/logs/rdna3-wmma-review-restored-public.log", + "copy": "review-logs-rdna3-wmma-review-restored-public.log", + "sha256_before_path_update": "e254626f04443f04e63c501353531943e9e5a2b29e7a39df96fd4bbaa6c85c39", + "bytes_before_path_update": 1098, + "sha256_after_path_update": "e254626f04443f04e63c501353531943e9e5a2b29e7a39df96fd4bbaa6c85c39", + "bytes_after_path_update": 1098, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/mmq-corrupt-output.log", + "copy": "review-mmq-corrupt-output.log", + "sha256_before_path_update": "d9f8deff1e30887fe75b685df117a204de1c0c203929aa4710c068ec067cb9a2", + "bytes_before_path_update": 216, + "sha256_after_path_update": "d9f8deff1e30887fe75b685df117a204de1c0c203929aa4710c068ec067cb9a2", + "bytes_after_path_update": 216, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/mmq-finite-output-results.json", + "copy": "review-mmq-finite-output-results.json", + "sha256_before_path_update": "0f638a588fbacc3a219dfe8076620a9bc39a8da2cbc387dd05dc4735e97c1b9c", + "bytes_before_path_update": 407, + "sha256_after_path_update": "0f638a588fbacc3a219dfe8076620a9bc39a8da2cbc387dd05dc4735e97c1b9c", + "bytes_after_path_update": 407, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/mmq-input-hash.log", + "copy": "review-mmq-input-hash.log", + "sha256_before_path_update": "51cfc1042a30457032729933e9d1254bade5045d6c4c0c707c08a980204a7889", + "bytes_before_path_update": 55, + "sha256_after_path_update": "51cfc1042a30457032729933e9d1254bade5045d6c4c0c707c08a980204a7889", + "bytes_after_path_update": 55, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/mmq-missing-case.log", + "copy": "review-mmq-missing-case.log", + "sha256_before_path_update": "e68967153fec50fd8e8c1d200b54d1273fe31f9d6965628ec0d9ff1415e2a150", + "bytes_before_path_update": 76, + "sha256_after_path_update": "e68967153fec50fd8e8c1d200b54d1273fe31f9d6965628ec0d9ff1415e2a150", + "bytes_after_path_update": 76, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/mmq-mutation-results.json", + "copy": "review-mmq-mutation-results.json", + "sha256_before_path_update": "e2ec70d64ad24142e46e9d766eb7ac016d307c763d70e35660075c49827bb860", + "bytes_before_path_update": 912, + "sha256_after_path_update": "e2ec70d64ad24142e46e9d766eb7ac016d307c763d70e35660075c49827bb860", + "bytes_after_path_update": 912, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/mmq-output-dtype.log", + "copy": "review-mmq-output-dtype.log", + "sha256_before_path_update": "a96dcf0da181f0abdf7f37157877f7d5c96e397f4800f15c40b9d8198df299bb", + "bytes_before_path_update": 69, + "sha256_after_path_update": "a96dcf0da181f0abdf7f37157877f7d5c96e397f4800f15c40b9d8198df299bb", + "bytes_after_path_update": 69, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/native-build-provenance.json", + "copy": "review-native-build-provenance.json", + "sha256_before_path_update": "1e096221205b015f0f500f8c4344b20743f3793cb368ae3eaa501b35cd58eddc", + "bytes_before_path_update": 1789, + "sha256_after_path_update": "1e096221205b015f0f500f8c4344b20743f3793cb368ae3eaa501b35cd58eddc", + "bytes_after_path_update": 1789, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/native-output-deduplication.json", + "copy": "review-native-output-deduplication.json", + "sha256_before_path_update": "61dfca1ab2e0d7f0ee6e0c06ae0ab5a70f946fc3be82a040b6eb076ecf296e62", + "bytes_before_path_update": 247, + "sha256_after_path_update": "61dfca1ab2e0d7f0ee6e0c06ae0ab5a70f946fc3be82a040b6eb076ecf296e62", + "bytes_after_path_update": 247, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/receipt-manifest.json", + "copy": "review-receipt-manifest.json", + "sha256_before_path_update": "93f15be1b0fa1826d8526d52c6d0fe45eabf599f69d7e74f5f959b3132ffc952", + "bytes_before_path_update": 14147, + "sha256_after_path_update": "9a8a8a438fa06e80b5b0a56454f6fd1f5b926e652618315b15a42660d7df03bd", + "bytes_after_path_update": 14578, + "adaptation": "local manifest paths and copy root updated" + }, + { + "prior_copy": "review/review-report.json", + "copy": "review-review-report.json", + "sha256_before_path_update": "0756bc8af9132833d90db6b84301d7d75755021fa8a02317d7076d3d7bb0a417", + "bytes_before_path_update": 19556, + "sha256_after_path_update": "0756bc8af9132833d90db6b84301d7d75755021fa8a02317d7076d3d7bb0a417", + "bytes_after_path_update": 19556, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/scalar-control-build.log", + "copy": "review-scalar-control-build.log", + "sha256_before_path_update": "a584afbd4e06ed967938817a425d488e94bfcf30913cb5d19167591c0b683278", + "bytes_before_path_update": 432, + "sha256_after_path_update": "a584afbd4e06ed967938817a425d488e94bfcf30913cb5d19167591c0b683278", + "bytes_after_path_update": 432, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/scalar-control-focused.log", + "copy": "review-scalar-control-focused.log", + "sha256_before_path_update": "13a1036c611f53b496a169442bfbf99e08c086a784bade52881c09a5028d23a9", + "bytes_before_path_update": 4470, + "sha256_after_path_update": "13a1036c611f53b496a169442bfbf99e08c086a784bade52881c09a5028d23a9", + "bytes_after_path_update": 4470, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/scalar-control-public.log", + "copy": "review-scalar-control-public.log", + "sha256_before_path_update": "22dd1fd3ff10eaed51bcb62bc002d2517fac339a80ea9d832acb10254ad69ae2", + "bytes_before_path_update": 553, + "sha256_after_path_update": "22dd1fd3ff10eaed51bcb62bc002d2517fac339a80ea9d832acb10254ad69ae2", + "bytes_after_path_update": 553, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/scalar-control-restoration.json", + "copy": "review-scalar-control-restoration.json", + "sha256_before_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_before_path_update": 222, + "sha256_after_path_update": "19631dcd5773bde5ff92c3936de245a43b2c227aaa27ce6f7b10338996da34c1", + "bytes_after_path_update": 222, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "review/tile-body-identity.json", + "copy": "review-tile-body-identity.json", + "sha256_before_path_update": "50624963d2c847a629959f98d817e9ee833410e618eb386c5371428d13e4124e", + "bytes_before_path_update": 321, + "sha256_after_path_update": "50624963d2c847a629959f98d817e9ee833410e618eb386c5371428d13e4124e", + "bytes_after_path_update": 321, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/HANDOFF.md", + "copy": "model-adapters-HANDOFF.md", + "sha256_before_path_update": "f8aeb5b132d332d416ce9d8a61aa997db695664053ea05a4a67b86885706ffc3", + "bytes_before_path_update": 17112, + "sha256_after_path_update": "f8aeb5b132d332d416ce9d8a61aa997db695664053ea05a4a67b86885706ffc3", + "bytes_after_path_update": 17112, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/adapter-manifest-gguf-trace.json", + "copy": "model-adapters-adapter-manifest-gguf-trace.json", + "sha256_before_path_update": "c401010ff823eab2f025a09cbebb957b85ec93e15e6ce591fda0150d8f5f2184", + "bytes_before_path_update": 44732, + "sha256_after_path_update": "c401010ff823eab2f025a09cbebb957b85ec93e15e6ce591fda0150d8f5f2184", + "bytes_after_path_update": 44732, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/adapter-manifest.json", + "copy": "model-adapters-adapter-manifest.json", + "sha256_before_path_update": "c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254", + "bytes_before_path_update": 40635, + "sha256_after_path_update": "c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254", + "bytes_after_path_update": 40635, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/aggregate_oracle_captures.py", + "copy": "model-adapters-aggregate_oracle_captures.py", + "sha256_before_path_update": "3ef9b56075cd1986f54771b4a7f29c8b802d6f71b244a1a9bc4dd245c55e7bf4", + "bytes_before_path_update": 6488, + "sha256_after_path_update": "3ef9b56075cd1986f54771b4a7f29c8b802d6f71b244a1a9bc4dd245c55e7bf4", + "bytes_after_path_update": 6488, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/build_llama_adapter.sh", + "copy": "model-adapters-build_llama_adapter.sh", + "sha256_before_path_update": "5afdc37c0de789d73ba1cb94d1f2e4a8640f35275312c0fac743fd5e2da223ef", + "bytes_before_path_update": 437, + "sha256_after_path_update": "5afdc37c0de789d73ba1cb94d1f2e4a8640f35275312c0fac743fd5e2da223ef", + "bytes_after_path_update": 437, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/capture_llama.cpp", + "copy": "model-adapters-capture_llama.cpp.txt", + "sha256_before_path_update": "b1a327d86a4b19ea0636f8bc37d8b1d4de00fe46bd528e011500238e7a22cb80", + "bytes_before_path_update": 17413, + "sha256_after_path_update": "b1a327d86a4b19ea0636f8bc37d8b1d4de00fe46bd528e011500238e7a22cb80", + "bytes_after_path_update": 17413, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/capture_primary.py", + "copy": "model-adapters-capture_primary.py", + "sha256_before_path_update": "055f4b29f43d7f1defb2ae4b04709d1ea847bb2534341fc35712c4b8e789c308", + "bytes_before_path_update": 11553, + "sha256_after_path_update": "055f4b29f43d7f1defb2ae4b04709d1ea847bb2534341fc35712c4b8e789c308", + "bytes_after_path_update": 11553, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/closed_loop_metrics.py", + "copy": "model-adapters-closed_loop_metrics.py", + "sha256_before_path_update": "c03582073458fea18811ce080a712133b408cd5dcccb10fe5f77c76a117890ae", + "bytes_before_path_update": 11056, + "sha256_after_path_update": "c03582073458fea18811ce080a712133b408cd5dcccb10fe5f77c76a117890ae", + "bytes_after_path_update": 11056, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/history/trace-gguf-fix-before/HANDOFF.md", + "copy": "model-adapters-history-trace-gguf-fix-before-HANDOFF.md", + "sha256_before_path_update": "92baebc89b7b478da8429784169a8e3e25c7d1b2aeb48fefc144df7463731c0d", + "bytes_before_path_update": 15901, + "sha256_after_path_update": "92baebc89b7b478da8429784169a8e3e25c7d1b2aeb48fefc144df7463731c0d", + "bytes_after_path_update": 15901, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/history/trace-gguf-fix-before/archive-map.json", + "copy": "model-adapters-history-trace-gguf-fix-before-archive-map.json", + "sha256_before_path_update": "78fda853afa77e21f2d6d642aebc58c4f9fa85e7c3bb96eca586c13ae7fd9b24", + "bytes_before_path_update": 892, + "sha256_after_path_update": "78fda853afa77e21f2d6d642aebc58c4f9fa85e7c3bb96eca586c13ae7fd9b24", + "bytes_after_path_update": 892, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/history/trace-gguf-fix-before/run_native_trace.py", + "copy": "model-adapters-history-trace-gguf-fix-before-run_native_trace.py", + "sha256_before_path_update": "c49a39c43dd77f5548c010ddcd10dda4ef07e4673f935dab745e1b5b655c7a88", + "bytes_before_path_update": 6175, + "sha256_after_path_update": "c49a39c43dd77f5548c010ddcd10dda4ef07e4673f935dab745e1b5b655c7a88", + "bytes_after_path_update": 6175, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/llama-model-monitor.jsonl.gz", + "copy": "model-adapters-llama-model-monitor.jsonl.gz", + "sha256_before_path_update": "ae8ea5d89dfceeb8cacd7774dfa660da3ae36503173aff77a43dd20c12540eab", + "bytes_before_path_update": 4677, + "sha256_after_path_update": "ae8ea5d89dfceeb8cacd7774dfa660da3ae36503173aff77a43dd20c12540eab", + "bytes_after_path_update": 4677, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/llama-model-monitor.stderr.log.gz", + "copy": "model-adapters-llama-model-monitor.stderr.log.gz", + "sha256_before_path_update": "2e3ad66aefa34d495d828b9b0801e616bd7b949c561146117f7b3b9d7a541dc8", + "bytes_before_path_update": 7222, + "sha256_after_path_update": "2e3ad66aefa34d495d828b9b0801e616bd7b949c561146117f7b3b9d7a541dc8", + "bytes_after_path_update": 7222, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/llama-model-monitor.stdout.log.gz", + "copy": "model-adapters-llama-model-monitor.stdout.log.gz", + "sha256_before_path_update": "97899d2893bedc9d31919f91c454bc599df30bc61ef13eca705bea3aadb46085", + "bytes_before_path_update": 125, + "sha256_after_path_update": "97899d2893bedc9d31919f91c454bc599df30bc61ef13eca705bea3aadb46085", + "bytes_after_path_update": 125, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/llama-model.json", + "copy": "model-adapters-llama-model.json", + "sha256_before_path_update": "41211f9ee03aeb17c246f52f224a4aa6b719de57dcd4d539fdaef26e503b6c5f", + "bytes_before_path_update": 68712, + "sha256_after_path_update": "41211f9ee03aeb17c246f52f224a4aa6b719de57dcd4d539fdaef26e503b6c5f", + "bytes_after_path_update": 68712, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/monitor_command.py", + "copy": "model-adapters-monitor_command.py", + "sha256_before_path_update": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "bytes_before_path_update": 9737, + "sha256_after_path_update": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "bytes_after_path_update": 9737, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model/on1.cpu-contention.json", + "copy": "model-adapters-native-ab-model-on1.cpu-contention.json", + "sha256_before_path_update": "9a8161cadc22129c8dc32bf8bbf796b180351f632e1b9694ac1c31af43fcf973", + "bytes_before_path_update": 1796, + "sha256_after_path_update": "9a8161cadc22129c8dc32bf8bbf796b180351f632e1b9694ac1c31af43fcf973", + "bytes_after_path_update": 1796, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model/on1.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-on1.monitor.jsonl.gz", + "sha256_before_path_update": "11139fc73eea8292a4793b470a10934dfec52ba51627a7c686b86339bc2ed404", + "bytes_before_path_update": 2426, + "sha256_after_path_update": "11139fc73eea8292a4793b470a10934dfec52ba51627a7c686b86339bc2ed404", + "bytes_after_path_update": 2426, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model/on1.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-on1.monitor.stderr.log.gz", + "sha256_before_path_update": "293355657cd6d0bd6e2f230a5b81e0bfe1fd09511a2e0e12d6896e7eedac4ac0", + "bytes_before_path_update": 357, + "sha256_after_path_update": "293355657cd6d0bd6e2f230a5b81e0bfe1fd09511a2e0e12d6896e7eedac4ac0", + "bytes_after_path_update": 357, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model/on1.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-on1.monitor.stdout.log.gz", + "sha256_before_path_update": "f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec", + "bytes_before_path_update": 20, + "sha256_after_path_update": "f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec", + "bytes_after_path_update": 20, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model/summary.json", + "copy": "model-adapters-native-ab-model-summary.json", + "sha256_before_path_update": "db6e149601cde5e7e26e753ef56e4efd37a0dc27f8518d8f8a545d51fd69fed9", + "bytes_before_path_update": 24131, + "sha256_after_path_update": "db6e149601cde5e7e26e753ef56e4efd37a0dc27f8518d8f8a545d51fd69fed9", + "bytes_after_path_update": 24131, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off1.cpu-contention.json", + "copy": "model-adapters-native-ab-model-gguf-off1.cpu-contention.json", + "sha256_before_path_update": "96565b697ce24b5dc96d08017019535ce405a3ec299594014b0e0c8f509eae87", + "bytes_before_path_update": 1780, + "sha256_after_path_update": "96565b697ce24b5dc96d08017019535ce405a3ec299594014b0e0c8f509eae87", + "bytes_after_path_update": 1780, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off1.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-gguf-off1.monitor.jsonl.gz", + "sha256_before_path_update": "a28aa2bea358a926997024516efa47bd0048dfb121b9508d5cc5f44578711037", + "bytes_before_path_update": 6983, + "sha256_after_path_update": "a28aa2bea358a926997024516efa47bd0048dfb121b9508d5cc5f44578711037", + "bytes_after_path_update": 6983, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off1.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-gguf-off1.monitor.stderr.log.gz", + "sha256_before_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_before_path_update": 465, + "sha256_after_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_after_path_update": 465, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off1.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-gguf-off1.monitor.stdout.log.gz", + "sha256_before_path_update": "14c3c3c173a16780c0dd97d5c509ed42413b16692476433ffaa95695c987161f", + "bytes_before_path_update": 687, + "sha256_after_path_update": "14c3c3c173a16780c0dd97d5c509ed42413b16692476433ffaa95695c987161f", + "bytes_after_path_update": 687, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off1.output-token-ids.json", + "copy": "model-adapters-native-ab-model-gguf-off1.output-token-ids.json", + "sha256_before_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_before_path_update": 610, + "sha256_after_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_after_path_update": 610, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off2.cpu-contention.json", + "copy": "model-adapters-native-ab-model-gguf-off2.cpu-contention.json", + "sha256_before_path_update": "9c8fd937babf1ddc20abee86441ae617ddd4d8ce3cfa5c70997413a9a91a302a", + "bytes_before_path_update": 1794, + "sha256_after_path_update": "9c8fd937babf1ddc20abee86441ae617ddd4d8ce3cfa5c70997413a9a91a302a", + "bytes_after_path_update": 1794, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off2.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-gguf-off2.monitor.jsonl.gz", + "sha256_before_path_update": "76d112f26d962fa63aaf4fae80801b254003e3addcc1dcce8a634679b127ece9", + "bytes_before_path_update": 7343, + "sha256_after_path_update": "76d112f26d962fa63aaf4fae80801b254003e3addcc1dcce8a634679b127ece9", + "bytes_after_path_update": 7343, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off2.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-gguf-off2.monitor.stderr.log.gz", + "sha256_before_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_before_path_update": 465, + "sha256_after_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_after_path_update": 465, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off2.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-gguf-off2.monitor.stdout.log.gz", + "sha256_before_path_update": "696cb43a5320d7021eb97fec12c15e9e277dfe826f3799a0e17441dcb717ff87", + "bytes_before_path_update": 687, + "sha256_after_path_update": "696cb43a5320d7021eb97fec12c15e9e277dfe826f3799a0e17441dcb717ff87", + "bytes_after_path_update": 687, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off2.output-token-ids.json", + "copy": "model-adapters-native-ab-model-gguf-off2.output-token-ids.json", + "sha256_before_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_before_path_update": 610, + "sha256_after_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_after_path_update": 610, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off3.cpu-contention.json", + "copy": "model-adapters-native-ab-model-gguf-off3.cpu-contention.json", + "sha256_before_path_update": "4da094f8bc8cec03095c82fcb57b03d2f9dfa2bb9de1f44c5b34fd900b9bb1b3", + "bytes_before_path_update": 1794, + "sha256_after_path_update": "4da094f8bc8cec03095c82fcb57b03d2f9dfa2bb9de1f44c5b34fd900b9bb1b3", + "bytes_after_path_update": 1794, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off3.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-gguf-off3.monitor.jsonl.gz", + "sha256_before_path_update": "2bce973fdbedd7133b278a9fb9c2a7ee283e87980f8916a94c7b59b59f58d861", + "bytes_before_path_update": 7406, + "sha256_after_path_update": "2bce973fdbedd7133b278a9fb9c2a7ee283e87980f8916a94c7b59b59f58d861", + "bytes_after_path_update": 7406, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off3.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-gguf-off3.monitor.stderr.log.gz", + "sha256_before_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_before_path_update": 465, + "sha256_after_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_after_path_update": 465, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off3.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-gguf-off3.monitor.stdout.log.gz", + "sha256_before_path_update": "b46c9fcf801d56e14e35265a6444be564ff8f8ced8d7b938449e777f3ff548fe", + "bytes_before_path_update": 686, + "sha256_after_path_update": "b46c9fcf801d56e14e35265a6444be564ff8f8ced8d7b938449e777f3ff548fe", + "bytes_after_path_update": 686, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/off3.output-token-ids.json", + "copy": "model-adapters-native-ab-model-gguf-off3.output-token-ids.json", + "sha256_before_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_before_path_update": 610, + "sha256_after_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_after_path_update": 610, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on1.cpu-contention.json", + "copy": "model-adapters-native-ab-model-gguf-on1.cpu-contention.json", + "sha256_before_path_update": "16eb3baa807bd363b4b88b533170058fce6729bb74d7141a776c9812baf1115b", + "bytes_before_path_update": 1783, + "sha256_after_path_update": "16eb3baa807bd363b4b88b533170058fce6729bb74d7141a776c9812baf1115b", + "bytes_after_path_update": 1783, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on1.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-gguf-on1.monitor.jsonl.gz", + "sha256_before_path_update": "33367ce038085d2e00c1dbc9ee2886fd599b977ab3b3353c0ac989499167024b", + "bytes_before_path_update": 6925, + "sha256_after_path_update": "33367ce038085d2e00c1dbc9ee2886fd599b977ab3b3353c0ac989499167024b", + "bytes_after_path_update": 6925, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on1.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-gguf-on1.monitor.stderr.log.gz", + "sha256_before_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_before_path_update": 465, + "sha256_after_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_after_path_update": 465, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on1.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-gguf-on1.monitor.stdout.log.gz", + "sha256_before_path_update": "0947b226c037b04a6945d59dbd17b83d7a0a959274f99f9229f7ad72480d169f", + "bytes_before_path_update": 686, + "sha256_after_path_update": "0947b226c037b04a6945d59dbd17b83d7a0a959274f99f9229f7ad72480d169f", + "bytes_after_path_update": 686, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on1.output-token-ids.json", + "copy": "model-adapters-native-ab-model-gguf-on1.output-token-ids.json", + "sha256_before_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_before_path_update": 610, + "sha256_after_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_after_path_update": 610, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on2.cpu-contention.json", + "copy": "model-adapters-native-ab-model-gguf-on2.cpu-contention.json", + "sha256_before_path_update": "fa334e0ff9f5210f37bde1618850d6cc5a618af8d62cc86015543c8cabae3483", + "bytes_before_path_update": 1794, + "sha256_after_path_update": "fa334e0ff9f5210f37bde1618850d6cc5a618af8d62cc86015543c8cabae3483", + "bytes_after_path_update": 1794, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on2.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-gguf-on2.monitor.jsonl.gz", + "sha256_before_path_update": "6b0095c9a0af5ad981a4e4a9ed8525476f86eaa4d2a39bcf256bd5aab7ba3332", + "bytes_before_path_update": 6939, + "sha256_after_path_update": "6b0095c9a0af5ad981a4e4a9ed8525476f86eaa4d2a39bcf256bd5aab7ba3332", + "bytes_after_path_update": 6939, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on2.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-gguf-on2.monitor.stderr.log.gz", + "sha256_before_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_before_path_update": 465, + "sha256_after_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_after_path_update": 465, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on2.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-gguf-on2.monitor.stdout.log.gz", + "sha256_before_path_update": "79f45aa80829a1f948634031d1450ff529fb9d93f4922e10cccbe170968fbf53", + "bytes_before_path_update": 685, + "sha256_after_path_update": "79f45aa80829a1f948634031d1450ff529fb9d93f4922e10cccbe170968fbf53", + "bytes_after_path_update": 685, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on2.output-token-ids.json", + "copy": "model-adapters-native-ab-model-gguf-on2.output-token-ids.json", + "sha256_before_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_before_path_update": 610, + "sha256_after_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_after_path_update": 610, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on3.cpu-contention.json", + "copy": "model-adapters-native-ab-model-gguf-on3.cpu-contention.json", + "sha256_before_path_update": "6c9de89ebbc797daf8ac01a3e3ffb8bc4b5c2f28af3b1003a3d1bee2b2f6cf25", + "bytes_before_path_update": 1785, + "sha256_after_path_update": "6c9de89ebbc797daf8ac01a3e3ffb8bc4b5c2f28af3b1003a3d1bee2b2f6cf25", + "bytes_after_path_update": 1785, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on3.monitor.jsonl.gz", + "copy": "model-adapters-native-ab-model-gguf-on3.monitor.jsonl.gz", + "sha256_before_path_update": "f951475ad2320c1c3e3e6c926e0f93840645af10a033972bd635134ddd25ba31", + "bytes_before_path_update": 6847, + "sha256_after_path_update": "f951475ad2320c1c3e3e6c926e0f93840645af10a033972bd635134ddd25ba31", + "bytes_after_path_update": 6847, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on3.monitor.stderr.log.gz", + "copy": "model-adapters-native-ab-model-gguf-on3.monitor.stderr.log.gz", + "sha256_before_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_before_path_update": 465, + "sha256_after_path_update": "ba2b0078d12b8b5b8e42042bd14bf859061ff23a83a4b311e1aae000e72a2b3e", + "bytes_after_path_update": 465, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on3.monitor.stdout.log.gz", + "copy": "model-adapters-native-ab-model-gguf-on3.monitor.stdout.log.gz", + "sha256_before_path_update": "96c9463352d502d4056301bec5403f92ba05746eea45c14f153321a9ef56abd5", + "bytes_before_path_update": 683, + "sha256_after_path_update": "96c9463352d502d4056301bec5403f92ba05746eea45c14f153321a9ef56abd5", + "bytes_after_path_update": 683, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/on3.output-token-ids.json", + "copy": "model-adapters-native-ab-model-gguf-on3.output-token-ids.json", + "sha256_before_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_before_path_update": 610, + "sha256_after_path_update": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "bytes_after_path_update": 610, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/summary.json", + "copy": "model-adapters-native-ab-model-gguf-summary.json", + "sha256_before_path_update": "0a2ad9fbed727c3777055c0ede8c8c5c6e92e4f4d9782635b686db5b5edbb520", + "bytes_before_path_update": 71209, + "sha256_after_path_update": "0a2ad9fbed727c3777055c0ede8c8c5c6e92e4f4d9782635b686db5b5edbb520", + "bytes_after_path_update": 71209, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/native-ab-model-gguf/workload-eight.json", + "copy": "model-adapters-native-ab-model-gguf-workload-eight.json", + "sha256_before_path_update": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777", + "bytes_before_path_update": 8159, + "sha256_after_path_update": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777", + "bytes_after_path_update": 8159, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/oracle-whole-workload.json", + "copy": "model-adapters-oracle-whole-workload.json", + "sha256_before_path_update": "dd6924f9e65f6b612836e64767559af2d323eb4df752424586a92378667a506c", + "bytes_before_path_update": 136896, + "sha256_after_path_update": "dd6924f9e65f6b612836e64767559af2d323eb4df752424586a92378667a506c", + "bytes_after_path_update": 136896, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/primary-model-retry-monitor.jsonl.gz", + "copy": "model-adapters-primary-model-retry-monitor.jsonl.gz", + "sha256_before_path_update": "a063c4c39638a48d2a5a21d0ba5109207bf24947ce541f3690675c0972861847", + "bytes_before_path_update": 35892, + "sha256_after_path_update": "a063c4c39638a48d2a5a21d0ba5109207bf24947ce541f3690675c0972861847", + "bytes_after_path_update": 35892, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/primary-model-retry-monitor.stderr.log.gz", + "copy": "model-adapters-primary-model-retry-monitor.stderr.log.gz", + "sha256_before_path_update": "8f31cb5ac2ba97331c41121498562a556734d48b166319b13a76cb73e2d71b54", + "bytes_before_path_update": 806, + "sha256_after_path_update": "8f31cb5ac2ba97331c41121498562a556734d48b166319b13a76cb73e2d71b54", + "bytes_after_path_update": 806, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/primary-model-retry-monitor.stdout.log.gz", + "copy": "model-adapters-primary-model-retry-monitor.stdout.log.gz", + "sha256_before_path_update": "144b86bf01525234f519ba27c8e3e79b4202c7843c9c7f2b74e32512aa969ada", + "bytes_before_path_update": 4485, + "sha256_after_path_update": "144b86bf01525234f519ba27c8e3e79b4202c7843c9c7f2b74e32512aa969ada", + "bytes_after_path_update": 4485, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/primary-model-retry.json", + "copy": "model-adapters-primary-model-retry.json", + "sha256_before_path_update": "caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040", + "bytes_before_path_update": 79325, + "sha256_after_path_update": "caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040", + "bytes_after_path_update": 79325, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/primary-model.json", + "copy": "model-adapters-primary-model.json", + "sha256_before_path_update": "f152650d003011ab1bbb0155f40331a1839c466af0c4e5fc193b36705eade0ba", + "bytes_before_path_update": 30536, + "sha256_after_path_update": "f152650d003011ab1bbb0155f40331a1839c466af0c4e5fc193b36705eade0ba", + "bytes_after_path_update": 30536, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/primary-retry-teardown.json", + "copy": "model-adapters-primary-retry-teardown.json", + "sha256_before_path_update": "217a2a80748702b3ec330b7f83713dbada40a6b4e34732f77748e62fdd80d5ae", + "bytes_before_path_update": 754, + "sha256_after_path_update": "217a2a80748702b3ec330b7f83713dbada40a6b4e34732f77748e62fdd80d5ae", + "bytes_after_path_update": 754, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/prompt-ids-retry.json", + "copy": "model-adapters-prompt-ids-retry.json", + "sha256_before_path_update": "ad4e063aff43e9a45d595eb32c9867fabc7f9dd1fbc496476a6cac1489251b3b", + "bytes_before_path_update": 4532, + "sha256_after_path_update": "ad4e063aff43e9a45d595eb32c9867fabc7f9dd1fbc496476a6cac1489251b3b", + "bytes_after_path_update": 4532, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/python-gpu-named-under-lock.sh", + "copy": "model-adapters-python-gpu-named-under-lock.sh", + "sha256_before_path_update": "44043dc3072cba0296f0f148406b8b4b56d78d02db285eb49761260cdec15a59", + "bytes_before_path_update": 1267, + "sha256_after_path_update": "44043dc3072cba0296f0f148406b8b4b56d78d02db285eb49761260cdec15a59", + "bytes_after_path_update": 1267, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/retry_primary_under_lock.sh", + "copy": "model-adapters-retry_primary_under_lock.sh", + "sha256_before_path_update": "e7947eb4c2935f74f34fe9200c401677117d22316c2eb299688f3a72a27f2fd1", + "bytes_before_path_update": 677, + "sha256_after_path_update": "e7947eb4c2935f74f34fe9200c401677117d22316c2eb299688f3a72a27f2fd1", + "bytes_after_path_update": 677, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/run_native_ab.py", + "copy": "model-adapters-run_native_ab.py", + "sha256_before_path_update": "397f10f847ad3e9643d6a95cfcbf66d4beaa2eb7b3b72b2e474659dafe847c7e", + "bytes_before_path_update": 15285, + "sha256_after_path_update": "397f10f847ad3e9643d6a95cfcbf66d4beaa2eb7b3b72b2e474659dafe847c7e", + "bytes_after_path_update": 15285, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/run_native_trace.py", + "copy": "model-adapters-run_native_trace.py", + "sha256_before_path_update": "f8c131d1fbcbaf9e54b8a34756e1d7cd4ea2692b7a9ee3b01f671be958529c7b", + "bytes_before_path_update": 6603, + "sha256_after_path_update": "f8c131d1fbcbaf9e54b8a34756e1d7cd4ea2692b7a9ee3b01f671be958529c7b", + "bytes_after_path_update": 6603, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/seal_adapter_manifest.py", + "copy": "model-adapters-seal_adapter_manifest.py", + "sha256_before_path_update": "d62dc73ef8128bed4f777a163a07845b490bd82ae90d446ebf8c5d1162b355d4", + "bytes_before_path_update": 4946, + "sha256_after_path_update": "d62dc73ef8128bed4f777a163a07845b490bd82ae90d446ebf8c5d1162b355d4", + "bytes_after_path_update": 4946, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/seal_trace_model_fix_manifest.py", + "copy": "model-adapters-seal_trace_model_fix_manifest.py", + "sha256_before_path_update": "8d46df17ff263b9026983313f96e27bf59c160fcb4798f5665dc8ef6b401c114", + "bytes_before_path_update": 3073, + "sha256_after_path_update": "8d46df17ff263b9026983313f96e27bf59c160fcb4798f5665dc8ef6b401c114", + "bytes_after_path_update": 3073, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/adapters/trace-gguf-model-check.json", + "copy": "model-adapters-trace-gguf-model-check.json", + "sha256_before_path_update": "60abb9deaf962f85a8326909cf96c4d5cc7a5991b401dd95861b4813ecd67c19", + "bytes_before_path_update": 377, + "sha256_after_path_update": "60abb9deaf962f85a8326909cf96c4d5cc7a5991b401dd95861b4813ecd67c19", + "bytes_after_path_update": 377, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/derived-measurements.json", + "copy": "model-derived-measurements.json", + "sha256_before_path_update": "92805f51c2a483bf1acae35d6a697c2b930c320e9403e39157d4178a052456e2", + "bytes_before_path_update": 43022, + "sha256_after_path_update": "3b5143035c9fb085c7e377a4cfa67030ef856f7654e9a925bba091de78962666", + "bytes_after_path_update": 43046, + "adaptation": "local manifest paths and copy root updated" + }, + { + "prior_copy": "model/logs/HANDOFF.md", + "copy": "model-logs-HANDOFF.md", + "sha256_before_path_update": "facaf3f8b60c07248ed179fe0d29105945bcbb895bec35e372a99c0b2fba012a", + "bytes_before_path_update": 5463, + "sha256_after_path_update": "facaf3f8b60c07248ed179fe0d29105945bcbb895bec35e372a99c0b2fba012a", + "bytes_after_path_update": 5463, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/build-provenance.json", + "copy": "model-logs-build-provenance.json", + "sha256_before_path_update": "a9ff8246fc9993f864eeec15392395811ef129512526b5a5bb9a98ef9d2447b5", + "bytes_before_path_update": 11566, + "sha256_after_path_update": "a9ff8246fc9993f864eeec15392395811ef129512526b5a5bb9a98ef9d2447b5", + "bytes_after_path_update": 11566, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/build-vllm.sh", + "copy": "model-logs-build-vllm.sh", + "sha256_before_path_update": "5a96e298a8693dfa98db87cf26f7c1d479a694090d86231a9ff0d4e5c032169f", + "bytes_before_path_update": 2271, + "sha256_after_path_update": "5a96e298a8693dfa98db87cf26f7c1d479a694090d86231a9ff0d4e5c032169f", + "bytes_after_path_update": 2271, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/import-provenance.json", + "copy": "model-logs-import-provenance.json", + "sha256_before_path_update": "9a1fa88bb359da713eecfcb3deddd2a3906863de97dca4e4976c06c59566a5a1", + "bytes_before_path_update": 2881, + "sha256_after_path_update": "9a1fa88bb359da713eecfcb3deddd2a3906863de97dca4e4976c06c59566a5a1", + "bytes_after_path_update": 2881, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/llama-build-command.sh", + "copy": "model-logs-llama-build-command.sh", + "sha256_before_path_update": "f5b1aeb467a12f85a18e7a0607f0a49561221f5b2e763423fdb2a9e99b558bbd", + "bytes_before_path_update": 538, + "sha256_after_path_update": "f5b1aeb467a12f85a18e7a0607f0a49561221f5b2e763423fdb2a9e99b558bbd", + "bytes_after_path_update": 538, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/llama-build.log.gz", + "copy": "model-logs-llama-build.log.gz", + "sha256_before_path_update": "393feb1d6c2e3c25d355d7d7db779c5ae43ad15d720ebf6cb65c12aa25cf2cfc", + "bytes_before_path_update": 3742, + "sha256_after_path_update": "393feb1d6c2e3c25d355d7d7db779c5ae43ad15d720ebf6cb65c12aa25cf2cfc", + "bytes_after_path_update": 3742, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/llama-configure.log.gz", + "copy": "model-logs-llama-configure.log.gz", + "sha256_before_path_update": "473438c26483d8c3e168bf57983fc8517b45309434863a4752098ee4e44f0751", + "bytes_before_path_update": 926, + "sha256_after_path_update": "473438c26483d8c3e168bf57983fc8517b45309434863a4752098ee4e44f0751", + "bytes_after_path_update": 926, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/plugin-source-artifact-verification.json", + "copy": "model-logs-plugin-source-artifact-verification.json", + "sha256_before_path_update": "ac1ec33a6fed8169d4fb7e2c42bdb1c6c17be2ed4ff52115f5542badc411e148", + "bytes_before_path_update": 288, + "sha256_after_path_update": "ac1ec33a6fed8169d4fb7e2c42bdb1c6c17be2ed4ff52115f5542badc411e148", + "bytes_after_path_update": 288, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/primary-model.log.gz", + "copy": "model-logs-primary-model.log.gz", + "sha256_before_path_update": "f174ba3afa3ff6982caa764d605d69dfab56e3b92527cf75d7db03d21b1e6fbf", + "bytes_before_path_update": 5513, + "sha256_after_path_update": "f174ba3afa3ff6982caa764d605d69dfab56e3b92527cf75d7db03d21b1e6fbf", + "bytes_after_path_update": 5513, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/qwen35-4b-upstream-config.json", + "copy": "model-logs-qwen35-4b-upstream-config.json", + "sha256_before_path_update": "ddc63e1c717afa86c865bb5e01313d89d72bb53b97ad4a8a03ba8510c0621670", + "bytes_before_path_update": 3161, + "sha256_after_path_update": "ddc63e1c717afa86c865bb5e01313d89d72bb53b97ad4a8a03ba8510c0621670", + "bytes_after_path_update": 3161, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/logs/vllm-build-attempt3.log.gz", + "copy": "model-logs-vllm-build-attempt3.log.gz", + "sha256_before_path_update": "4028f97a6da640e9851aae21727392b7ce7993e881003ca16920ce5fcb0bbafa", + "bytes_before_path_update": 82870, + "sha256_after_path_update": "4028f97a6da640e9851aae21727392b7ce7993e881003ca16920ce5fcb0bbafa", + "bytes_after_path_update": 82870, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/operator-mmq/capture.log.gz", + "copy": "model-operator-mmq-capture.log.gz", + "sha256_before_path_update": "a028751bc32005c5751d4b99999f19f35037febeb828199b1b49693ee47450cf", + "bytes_before_path_update": 681, + "sha256_after_path_update": "a028751bc32005c5751d4b99999f19f35037febeb828199b1b49693ee47450cf", + "bytes_after_path_update": 681, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/operator-mmq/compare.log.gz", + "copy": "model-operator-mmq-compare.log.gz", + "sha256_before_path_update": "76560ddde671ab67ba2c33e2b1e9ecfb1f4d468b3b286729ddbf7751d1d9dc4b", + "bytes_before_path_update": 683, + "sha256_after_path_update": "76560ddde671ab67ba2c33e2b1e9ecfb1f4d468b3b286729ddbf7751d1d9dc4b", + "bytes_after_path_update": 683, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/operator-mmq/comparison.json", + "copy": "model-operator-mmq-comparison.json", + "sha256_before_path_update": "5588ba567595a156283bb426b29477f212b84923dec26b2226f4326d2dc50518", + "bytes_before_path_update": 59993, + "sha256_after_path_update": "5588ba567595a156283bb426b29477f212b84923dec26b2226f4326d2dc50518", + "bytes_after_path_update": 59993, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/operator-mmq/report.json", + "copy": "model-operator-mmq-report.json", + "sha256_before_path_update": "ef12cb966bfec0f4224d73dcab609b9d9f509e14287c8d2ec8768c385d5eba11", + "bytes_before_path_update": 32689, + "sha256_after_path_update": "ef12cb966bfec0f4224d73dcab609b9d9f509e14287c8d2ec8768c385d5eba11", + "bytes_after_path_update": 32689, + "adaptation": "filename only; bytes unchanged" + }, + { + "prior_copy": "model/receipt-manifest.json", + "copy": "model-receipt-manifest.json", + "sha256_before_path_update": "2efa1ebe4a644a617436d72107e49fd295da12c256e3d852ec65cb3010326a4a", + "bytes_before_path_update": 37574, + "sha256_after_path_update": "f1ba1ff37ef8eb8137fbb4a721d57004b93444009d0d39420e36ea3e755513da", + "bytes_after_path_update": 51850, + "adaptation": "local manifest paths and copy root updated" + } + ] +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-anchors.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-anchors.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..82849623d54cbfbda99ded6c0f0d68b36113f35c GIT binary patch literal 249 zcmV^PS!id3x#xsfN z={xjKQFoSQ`@PS)Os#hyF@q0!Liu#4U~Hsly(p~Uxh`s`ArbD-TgQrRS(Fv};6GS? zS~}W!=5CJyNn#)~{!JSSVX<<#JNtHi|2?_eAX6R!&mLyruf6I}W7`MTVJ-L2NRCnL z8l+icV45D2jN)&C`gm;Md)x+V2GG>nOY%w4lCsdmD2oP@Rb2&~H{>u=98hFzn=&nC z_cVRyzUsgH4SMH&z)Q6`zk;tE7U=!QvYK@+2bE5<14Y<~m8+XiEWSwMS^)q6&U1HM literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-classification.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-classification.json new file mode 100644 index 000000000..266b650a9 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-classification.json @@ -0,0 +1,11 @@ +{ + "scope": "Final staged paths against origin/main, added/copied/modified/renamed only; exact commit-range check follows commit.", + "classified_paths": 184, + "classes": { + "project_record": 3, + "procedure": 2, + "public_document": 79, + "evidence": 91, + "product": 9 + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-conflicts.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-conflicts.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..8bf4e6a3afe11fa693963e7909b3e1413e1973a2 GIT binary patch literal 160 zcmV;R0AK$fiwFP!0000213k<^4uUWcK+(OYn58BlqJjZWGn68ecBW0ILAbp{6PGXf z`6-0lLp2As)j|$+t`_h4Y+@|aD0nO1%vcgfe=tENPbLFnayDrX7nn#!l9vL>SKjIq z?21fcM`+vb4mqK5JF;E#uYhBHZCV&eFl`0Ypc{J;v5xY~h0000f&^~7X literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-integrity.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-integrity.json new file mode 100644 index 000000000..ee7606640 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-integrity.json @@ -0,0 +1,8 @@ +{ + "model_source_and_copy_hashes": 112, + "review-receipt-manifest.json": 53, + "operator-receipt.json": 19, + "local_markdown_links": "PASS", + "nested_files": [], + "parent_unrelated_bytes": "UNCHANGED" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-now.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-now.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..b38fb67d40d55b126983b16b155ac491443a7db4 GIT binary patch literal 77 zcmb2|=3oE;Cg#uIw*_7B_VGWft$FSHXa4J_eFIPEgn5K`=;>-PalO(=dG=Cm>ar!v gr)h{R6`THSnbwk&Wy{5;zbIs6xZB^uWd$?@0Fy`_vH$=8 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-onboard-resolved.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-onboard-resolved.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..779c4ab294a142486f6cd12f6318ea24356a4908 GIT binary patch literal 56 zcmb2|=3oE;Cg#hRmAMLD2C){fsy@?{h}N32L~OcbLi)y0eqO^ey* Ib^+A`0MHi^*#H0l literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-preflight.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-preflight.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..2cff88352ae5bbc00651f0e0f13241ce110c8ece GIT binary patch literal 2615 zcmV-73dr>ziwFP!000021Jznxa~e4oefM9O7p-67)VguNPV6w{2aio=T$9)t$Gb17 zluC4qMn!i^kUXqoZ;0UIkJ0t*AJMOaPoJWP`)mBUxw|?g#*4dD zN+kW>S@-nK+Y2((tcb^#5OA_fz=5=5%oR(i6HzcLwIQ0v_{5Vw=|aJXoQ!48Po`qR z%=l!QWqBu7>ZFqjdoq)HVm0Sx`F*65f}KXQJZBhMt4AvJy4~~lz4IQyXD=)=b7Of< zj_{PYr)THyk4eUiC1cLC9dc&LS?}FDLs%+bA3Riwk(60(HfvjA)+ibT%L5^gM( z9A2(^y$OC6f$dnw`xjHD}P3B^M?4>=OUMMeY*^N_7_neZ&C-endnfJ84y`+W>*$+L)~_g49>o9kVXLu&x+!vjgRV9TsQ@Db$m#)vKXn zU9gv9wioPmvC>#o4pCsnv~ot9{AKl~fg-;Z8?5vVbXD$YUGC}Da^FCE)dMxZ!cAEw z5-h%39j}@ZvToyygssyQDogJ?a{@-fA<%_&l@|>1^uObS;kYlZGA2bw9vRV#BWy6~p zzF?NlxJEFzjh-juh{E2YptSSZ4gDZ^mY8eM%MU0i58TLX$~%8a^y`&^(TluR@*Yuc z_>jdDa+D)!9Y2O=NX)XVBCD_aD=f?-GENS+a^?m%jzq4q6Sq=xVqz^6{%?A{qvnSo z#KvoTcDE^w=oB9!u@@&*$#&B&1-%FMqRn_Y2p+7bpemf?IIhMusVZ*3b6&@SJ zKx?V{P_7)eG|4RxUlXVx%<8 zU>ndSjimt^+rT=TZsW2m2+F5?6_ZQ>iLa zK-1v+%{0iH8`yd~Ya!1~!8L=X zTlsMV=t*)L3|r#U#XFj14EwE86tqO@K<+y-L>)7w6*Fy_H}ym#z@>emz|5I+Iu@KF zC+&DUuG*G{*s{Y^&le@7`6v_V80BdqR9%GI2hgER=4}vROv!g=wLccn(6M0CA&pZD z-F|9W#VB?H&)3I@K-g5VQ0=PV#?eqJOU<$y66_~qhFmrQNtu1>y+txS zp#($fPAqltjyhM+Ng=%!ZGs^(=lP7;c-$hhj(}8V2!giBGv*2`P0Cz_90)2=2fHz? z0sjn&l?41J=!|8PD&GPz7W<&`o>Nj3fhkRzF_g;s7~$%@uz_6re#V~^);s5Vq$)pq z+-d&h_uJ1a;{AQbi&Gji<+ksNI+zt-`8>G0xxM?fPYM`pPJ|(av;=GpMq$H@cgXcE zcp8+?GDFndj%9Hgc`#1w1nFfssfE{v?an@WU{6q`{r_m<15a}lsAg@bUxE1v3JE_Z zD9vsv;_QewfK^iw{={`G4976e6GMb;Q`kwt?r17e23hQ-wCc--I8T(;5oKgFcG16q z&h^y_OU8c}jhCuox50rw!)|NLkEqSTTIPsD7mQdu9A=1PGK6W(=H}(}#ohw3*yFPN zEiJ%OX_}U!AGL5Th3o&7ncHueyjCLHTIDqC55;^gZ{96}C<#l9oo76RsjA)D!-f^> zn`oU!!Z6<`zzMZsz-sMGr)7>hj8!kF5=kWYW_72HY~ClOL2>T~B$BVu_#2M#_1?a` zEhX3YpFZDy98moKbai+0<%jRey}EmJ23mj{{gE*Cc{8dNxz@$m2f4W3TVgj{1={_> zu6i!<2VJ$Pp=&#gn2o@LW1K%K#^mm zIa6V1-9rikLd~9*5gU!CFm|nF(E{W7)O8$WT%9cUlilnhhEdNta$#VoU9)q9JG+Jx zN$JRlKVK#~SF#pC>1Z(d@L6$EB=JwGnKpCxGB&F-K7^t&h1HmTYL6_D<-Ntl{!&7gSM=^tZ{13(_t`{6A0048ME|LHM literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-prompt.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-prompt.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..b53ee9997cd28c75dc91c353154d2815a43d0544 GIT binary patch literal 58 zcmb2|=3oE;Cg#uIw*?u5d7L|`@8=t+p>xJDC7Oa+%;2D!@|<4diSrLH=?98EPh#5|6qT~_Otzllyos8Lupayx*(w8 E06KLlK>z>% literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-role.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-role.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8355d24d278f4da5bbf3ac660434421f3b00dfd GIT binary patch literal 294 zcmV+>0onc^iwFP!000021BFmcZ^AGPz4tG0dB;s!D71VCrXEmNZ4;~&j2$LUp*2lJ z+Ehsf+P_~0XxB-W<>x0qKl`1mmAZw|isk{(+r?3%kG+Z3r!Px&H-y~-tBC#!ih8OM`RjJ@G)DH1Ob{wEMYyG sPcQ~2q=k>X*n;Emr4%|t2PJFa9?|OCF{rsC__y?fAJBF^)PVs207Hb3Gynhq literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-verification.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-verification.json new file mode 100644 index 000000000..f89bcf4af --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/final-records-verification.json @@ -0,0 +1,143 @@ +{ + "recorded_utc": "2026-09-14T05:19:22.205915+00:00", + "scope": "Final records only. Product/include/tests/tools remain byte-identical to independently reviewed c3fe98ba6c55ce71e75746e1b944a27640464e0f.", + "base_head": "6e65c6fad158c7d2e7cd2f583c6b50e1ab694cbf", + "full_preflight": { + "command": "scripts/agent-preflight.sh", + "exit_code": 1, + "failed_gates": [ + "test_agent_onboard" + ], + "skipped_gates": [ + "test_qwen3_capture_tools", + "test_qwen3_capture_outputs", + "test_ltx25_render_compare", + "test_ltx25_absolute_reference", + "test_ltx25_prompt_adherence", + "test_ltx25_adherence_detail_loss", + "test_convert_glm5_next_gguf", + "check-arm-isa-build.py", + "check-cpu-isa-build.py", + "check-cuda-fat-gencode.py", + "check-pr-size.py", + "check-triton-aot-multiarch.py" + ], + "default_host_translation_units_compiled": 8, + "resolution": { + "command": "GIT_CONFIG_GLOBAL=/dev/null python3 tests/scripts/test_agent_onboard.py", + "exit_code": 0, + "cases": 39, + "reason": "The unchanged fixture expects master; host global init.defaultBranch is main. The spec ancestor already records the identical baseline failure and isolated environment resolution.", + "prior_receipt": "a5b5c92f2604386fcf162d5e12a42988f412db3b commit body" + }, + "full_preflight_rerun_after_resolution": false, + "skip_disposition": "Seven NumPy suites retain separate successful operator execution receipts. Five argument-dependent skips remain as reported here; staged path classification is separately verified and the exact final commit range is checked at handoff." + }, + "scoped_gates": [ + { + "command": "python3 scripts/check-agent-record.py", + "exit_code": 0 + }, + { + "command": "python3 scripts/check-conflict-markers.py", + "exit_code": 0 + }, + { + "command": "python3 scripts/check-now-current.py --staged", + "exit_code": 0 + }, + { + "command": "python3 scripts/check-symbol-anchors.py", + "exit_code": 0 + }, + { + "command": "python3 scripts/check-prompt-contract.py", + "exit_code": 0 + }, + { + "command": "scripts/agent-preflight.sh --staged --role-only", + "exit_code": 0 + }, + { + "command": "git diff --cached --check", + "exit_code": 0 + }, + { + "command": "git diff --exit-code c3fe98ba6c55ce71e75746e1b944a27640464e0f -- include src tests tools", + "exit_code": 0 + } + ], + "copy_validation": "112 model receipts match source bytes, 53 review copies and 19 operator copies match their sealed hashes. Gzip preserves exact source bytes. Local README links resolve. No nested evidence file remains. Parent spec unrelated bytes remain unchanged.", + "receipts": [ + { + "source": "/tmp/rdna3-wmma-final-records-preflight.log", + "source_sha256": "04804e5ec7c4dced6047a9f449b291a4620dbed012aed9b84a44b0bc22695b15", + "copy": "final-records-preflight.log.gz", + "copy_sha256": "e15567fcca287a815e13b33c9244be51cc533317837277cc7ad963c7b59418e4", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-onboard-resolved.log", + "source_sha256": "87261c6ef65de490bfb0724d6b6dca9668f530b51c7e0f45e019a1c1a10d7e1b", + "copy": "final-records-onboard-resolved.log.gz", + "copy_sha256": "1963355069492d526fbf1ede0abc6b287493650684ceb212a0a0def4509154e3", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-record.log", + "source_sha256": "962ac3fffa16e7160b20dc7ce70fc8f7816701487ff59cbb85aab2f8786307fd", + "copy": "final-records-record.log.gz", + "copy_sha256": "0c08252670f07a75c55ac022c4920213ba99aa79392d2e7c1c61886b5a8e1ab8", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-conflicts.log", + "source_sha256": "ce66d7bc6144b5b2318141c1ea369e1923f8815cee33aafd94f240e393341d95", + "copy": "final-records-conflicts.log.gz", + "copy_sha256": "786b53f5596969bf49342a69f77ac4aea1e694a0c4ab5ed93b8ce2a13586fd47", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-now.log", + "source_sha256": "4a191c074aca1d06e3ac0a4e4f7b18ccb425b6e42992d6e39a858821599b8af0", + "copy": "final-records-now.log.gz", + "copy_sha256": "3f2fee877080c56d89c4c8360d75f50339a603407329a83a3bb69c2f010b7568", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-anchors.log", + "source_sha256": "434f8e97fae309b07b385c7374b6989baa8916bfc2bac4212fd2bc32149c255d", + "copy": "final-records-anchors.log.gz", + "copy_sha256": "e07f7976f3dfa0a897e0f9ec6457a93d8be8a38ce1719581d489ce43ec78260c", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-prompt.log", + "source_sha256": "8d62f54dc380d68270711ab23b0d608becf6a031004f859ad44513175ec27fba", + "copy": "final-records-prompt.log.gz", + "copy_sha256": "906d777dc9c75c4b2f1a0cf677d5c18d81823e3f1eca4ef2fbe223c00cde3bef", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-role.log", + "source_sha256": "171f420bfa5257289ee28b7fe6947212b3f174fbac9fbb61c9e5c8a35ecdcba0", + "copy": "final-records-role.log.gz", + "copy_sha256": "2eba183d0346125dd095226ce7d9ce774e8793a26a13a944c93089822bfc0ad3", + "adaptation": "gzip with mtime zero; decompressed bytes unchanged" + }, + { + "source": "/tmp/rdna3-wmma-final-records-integrity.json", + "source_sha256": "2c15fde79ddeb7b454689f108a60056146b32d8033cdf817e345256f68b7786d", + "copy": "final-records-integrity.json", + "copy_sha256": "2c15fde79ddeb7b454689f108a60056146b32d8033cdf817e345256f68b7786d", + "adaptation": "none" + }, + { + "source": "/tmp/rdna3-wmma-final-records-classification.json", + "source_sha256": "780be18abc5e0cf860161f4f3d1a3a7131a785b9193fa2064c4fa7ea7ce8109e", + "copy": "final-records-classification.json", + "copy_sha256": "780be18abc5e0cf860161f4f3d1a3a7131a785b9193fa2064c4fa7ea7ce8109e", + "adaptation": "none" + } + ] +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-HANDOFF.md b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-HANDOFF.md new file mode 100644 index 000000000..24577b486 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-HANDOFF.md @@ -0,0 +1,98 @@ +Measurement adapter preparation is COMPLETE. All files are external scratch artifacts under `/home/vikash/oracle/rdna3-wmma-latest`; no product or upstream model/kernel source was changed. The coordinating task owns GPU execution and `/home/vikash/gpu.lock`. These preparation checks do not establish model token parity or a performance floor. + +The current source/binary and completed check hashes are sealed in [adapter-manifest-gguf-trace.json](/home/vikash/oracle/rdna3-wmma-latest/adapters/adapter-manifest-gguf-trace.json). The original [adapter-manifest.json](/home/vikash/oracle/rdna3-wmma-latest/adapters/adapter-manifest.json) remains byte-for-byte unchanged; [archive-map.json](/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/archive-map.json) locates the preserved earlier trace source and handoff. Earlier build and import evidence remains in [build-provenance.json](/home/vikash/oracle/rdna3-wmma-latest/logs/build-provenance.json), [import-provenance.json](/home/vikash/oracle/rdna3-wmma-latest/logs/import-provenance.json), and [the oracle build handoff](/home/vikash/oracle/rdna3-wmma-latest/logs/HANDOFF.md). + +The clean upstream source revisions are vLLM `39545e475d3627287ff69c25465dc0bd405f67e1`, llama.cpp `093a2f86c3e37c54fa3e1f9efb17b304f3433abd`, and the GGUF plugin `d4c1f0d082fc7cd4350da56689109a01c1f29d6c`. The committed experiment spec is `a5b5c92`. The retained GGUF SHA256 is `00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4`. + +**Primary capture and retry.** [capture_primary.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py) exports exact raw `tokenizer.encode` IDs, checks the retained GGUF hash, uses latest vLLM with explicit GGUF config/load/quantization and the supported text-model class override, and retains the resolved engine configuration. Metadata comes from `Qwen/Qwen3.5-4B@851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`; the flat text config preserves `partial_rotary_factor=0.25`. The two raw prompts encode to 183 and 174 tokens. No chat template or tokenizer-regex repair is applied. + +The requested configuration is dtype auto, max length 2048, one sequence, max batched tokens 512, block size 32, prefix caching disabled, generation config vLLM, and upstream production compilation/graph defaults. Greedy sampling uses seed 0, temperature 0, 16 output tokens, `min_tokens=0`, `ignore_eos=True`, and neutral penalties. Four legs run after one engine load: the first captured leg and three later legs. Worker Torch allocator peaks are reset before each leg. The field named `memory_before_reset_peak` contains the snapshot **after** resetting the peak counter. Device free/total readings have whole-device scope; the allocator readings belong to the actual model worker. + +The coordinator's first invocation initialized the model and production graphs in 348.582 seconds, then failed at the first memory RPC because callable serialization was disabled. It did not generate tokens. Its unchanged [primary-model.json](/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model.json) has SHA256 `f152650d003011ab1bbb0155f40331a1839c466af0c4e5fc193b36705eade0ba`. The capture source stayed unchanged. The launchers now explicitly allow serialization for this trusted local callable inside the network-disabled container, set `XDG_CONFIG_HOME` under the task directory, and disable usage statistics. The first attempt warmed JIT caches; the retry's `cold` label denotes its first captured leg, not an empty JIT cache. + +While already holding the mutex, run: + +```sh +/home/vikash/oracle/rdna3-wmma-latest/adapters/retry_primary_under_lock.sh +``` + +This writes `primary-model-retry.json`, `prompt-ids-retry.json`, `primary-model-retry-monitor.jsonl`, and separate stdout/stderr logs. The bounded monitor uses the actual host PID of Docker container `rdna3-wmma-primary-retry`. Existing output files cause the monitor to refuse replacement. The full Docker argv, image identity, environment, and mounts are in [python-gpu-named-under-lock.sh](/home/vikash/oracle/rdna3-wmma-latest/adapters/python-gpu-named-under-lock.sh). Both task worktrees and `/home/vikash/models` are mounted; the source/model mounts are read-only. + +The coordinator subsequently completed the primary retry: four legs and 128 generated IDs, which it checked exactly against the scalar native two-prompt baseline repeated four times. Engine initialization took 154.137 seconds with normal production graphs. The completed generation report has SHA256 `caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040`. After the script wrote `COMPLETE`, the engine process persisted because the scratch adapter has no explicit shutdown. The coordinator owns termination of its `rdna3-wmma-primary-retry` container. Consequently, the process monitor may report `COMMAND_FAILED` during teardown even though the immutable generation report is complete. Treat generation completion and process teardown as separate evidence; do not rerun successful generation merely to obtain a clean teardown exit. The completed report and capture source remain unchanged. + +**Latest llama.cpp capture.** [capture_llama.cpp](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama.cpp) and [capture_llama](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama) use the latest public llama API and the isolated built shared libraries. The exact command is [build_llama_adapter.sh](/home/vikash/oracle/rdna3-wmma-latest/adapters/build_llama_adapter.sh); compilation with Clang, `-O2 -Wall -Wextra -Werror`, and one compiler process exited 0. The linked runtime resolves through the explicit task-library RPATH. No upstream source repairs were made. + +The adapter requests 99 GPU layers, context 2048, batch/ubatch 512, one sequence, four threads, and BF16 K/V. It rejects context creation failure without a dtype fallback. It clears all recurrent/KV memory and checks the empty sequence before every prompt. Each of four legs processes the same two prompt arrays. The upstream greedy sampler receives the complete vocabulary, with no EOS/EOG masking or stop checks, and emits exactly 16 tokens. Each request performs one prefill call and 15 later decode calls. Every logits row must be finite; all 16 full-vocabulary rows are retained as hashed float32 binary files. + +While already holding the mutex, run: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py \ + --output-jsonl /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model-monitor.jsonl \ + --interval-seconds 0.05 --timeout-seconds 600 \ + -- env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + /home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama \ + /home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/model.gguf \ + /home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids-retry.json \ + /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json +``` + +Logit file writing and hashing occur outside each measured leg. Client timing includes finite checks and full-vocabulary copies, so it is not an equal-overhead latency denominator. Separate decode-call timings contain `llama_decode` plus synchronization and exclude sampling/capture. Memory clear is reported separately. Public getters do not expose a per-context GPU allocation breakdown, final layer placement, or resolved K/V types: the report states these omissions and retains whole-device snapshots and process peak RSS. Load logs and matching traces remain necessary to establish the executing path. + +The coordinator completed the latest llama capture and checked all 128 generated IDs exactly against the completed primary capture and the repeated native scalar baseline. + +**Native same-binary A/B.** [run_native_ab.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py) runs six separate processes in `on1, off1, off2, on2, on3, off3` order. On unsets `VT_ROCM_QUANT_WMMA`; off sets it to `0`. Each process loads one model and runs eight requests: the original two dataset records repeated four times without text changes. The output directory retains the original and expanded dataset hashes and mapping `[0,1,0,1,0,1,0,1]`. Configuration is input-length bound 256, output length 16, concurrency 1, max batched tokens 512, 64 native blocks, temperature 0, seed 0, raw prompts, and EOS ignored. Native block count is not equated with vLLM's hybrid allocation. + +While already holding the mutex, run: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py \ + --output-dir /home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf \ + --model /home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf \ + --primary-report /home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json \ + --llama-report /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json +``` + +The driver checks card1 `gpu_busy_percent <= 2` before each process and records CPU process/load snapshots. It hashes the executable, resolved ELF shared libraries, model/config/tokenizer inputs, and datasets, then checks identities at each boundary and hashes them again afterward. Missing shared libraries or changed inputs reject the run. Each process gets a 0.05-second monitor and separate output IDs/logs. The driver enforces eight requests, 1428 input tokens, and 128 generated tokens, compares every generated-ID row across all six processes, and compares completed oracle captures in four-leg order. Missing or incomplete oracles remain explicitly unavailable. + +Pass the explicit GGUF file in the recipe above. The driver's unchanged default model directory selects the native safetensors loader and has no shards. The first failed `on1` receipt remains in `native-ab-model`; the coordinator runs the unchanged driver with the explicit GGUF argument in `native-ab-model-gguf`. + +`same_binary_output_gate` and `cross_oracle_output_gate` are separate. A shared mismatch against an oracle makes cross-oracle parity fail, while exact native A/B outputs still permit descriptive on/off medians and ratios. Any native arm/repeat mismatch suppresses those ratios. Native metrics aggregate all eight requests after one load; the external process duration includes startup, teardown, and monitor overhead. Its difference from benchmark duration is not a direct startup-latency measurement. No warm-only native result is inferred. + +**Whole-workload oracle aggregation.** After both captures complete, run: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate_oracle_captures.py \ + --primary /home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json \ + --llama /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json \ + --output /home/vikash/oracle/rdna3-wmma-latest/adapters/oracle-whole-workload.json +``` + +This reuses the original primary metrics helper on all eight request records and the sum of the four leg durations. It aggregates llama's eight requests while labeling its additional capture overhead, retains each original cold/warm leg, and checks primary/llama IDs exactly. Matching request counts do not erase differences in instrumentation or timing windows. + +**Native rocprofv3 path traces.** The installed `/opt/rocm/bin/rocprofv3 --help` and `--version` were inspected without executing a GPU workload. [run_native_trace.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py) retains complete argv, tool/binary/model/dataset identities, profiler output configuration, and bounded monitor logs. It explicitly passes `/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf` to the native loader, validates its expected SHA256 before launch, and checks the file again after the trace. It uses the same original two records repeated four times and the same native configuration as the unprofiled A/B. It collects unfiltered HIP API, kernel dispatch, memory-copy/allocation, and ROCTx traces in CSV and JSON, without hardware counters or ATT. `ROCPROF_TMPDIR` and `TMPDIR` point to writable task cache directories outside `/dev/shm`. + +While already holding the mutex, run these sequentially: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py \ + --arm on --output-dir /home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py \ + --arm off --output-dir /home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off +``` + +Each trace has a 600-second bound and its own output and temporary directories. Existing output directories are refused. The driver requires idle card1 before starting and retains exact generated IDs. Profiler timings carry tracing overhead; use unprofiled A/B for throughput. The corrected argv can be reviewed in `native-trace-on-gguf-preparation/recipe-and-result.json` and `native-trace-off-gguf-preparation/recipe-and-result.json`; both were created with `--prepare-only` and did not launch a workload. The earlier `native-trace-*-preparation` receipts retain the invalid directory argument as historical evidence. + +The common [monitor_command.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py) records boot ID, command argv, timestamps, process-tree RSS/PSS, host available memory, and card1 VRAM/busy/clock text. Device memory is whole-device; peak values are maxima of sampled observations. It never changes clocks. For Docker, pass `--docker-name` matching the command's unique `--name`; the monitor refuses an existing container and samples the container's actual host PID. Timeout cleanup only targets the process group and container started for that invocation. + +Preparation checks completed without executing a GPU workload: raw tokenization [183,174]; llama compile and help; malformed-token JSON rejection before backend initialization; monitor CPU process sampling; bounded timeout cleanup; Docker CPU host-PID sampling; six-process native CPU orchestration; deliberate off-arm token mismatch; busy-gate rejection before process launch; cross-oracle mismatch retaining exact same-binary ratios; aggregate arithmetic for eight requests/1428 inputs/128 outputs; Python AST and shell syntax checks. CPU fixtures and logs are retained and named as such. They are not model measurements. + +Source anchors for review: + +- Primary argument/sampling and worker memory adaptation: [capture_primary.py:62](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py:62), [capture_primary.py:165](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py:165), [capture_primary.py:193](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py:193); repository metrics [run_closed_loop:59](/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py:59) and [derive_metrics:202](/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py:202). +- Latest model registration: [registry.py:204](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/model_executor/models/registry.py:204), [registry.py:597](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/model_executor/models/registry.py:597); plugin registration [plugin.py:130](/home/vikash/oracle/rdna3-wmma-latest/plugin-source/vllm_gguf_plugin/plugin.py:130), GGUF linear dispatch [linear.py:35](/home/vikash/oracle/rdna3-wmma-latest/plugin-source/vllm_gguf_plugin/quantization/linear.py:35), compiled MMQ entry [ops.py:200](/home/vikash/oracle/rdna3-wmma-latest/plugin-source/vllm_gguf_plugin/ops.py:200). +- Upstream min-token masking skips zero: [builtin.py:198](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/v1/sample/logits_processor/builtin.py:198). Trusted callable serialization is explicitly guarded at [serial_utils.py:221](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/v1/serial_utils.py:221). +- Latest llama memory clear and synchronization: [llama.h:739](/home/vikash/oracle/rdna3-wmma-latest/llama-source/include/llama.h:739), [llama.h:1027](/home/vikash/oracle/rdna3-wmma-latest/llama-source/include/llama.h:1027). Full-vocabulary sampling and greedy tie policy: [llama-sampler.cpp:895](/home/vikash/oracle/rdna3-wmma-latest/llama-source/src/llama-sampler.cpp:895), [llama-sampler.cpp:1053](/home/vikash/oracle/rdna3-wmma-latest/llama-source/src/llama-sampler.cpp:1053). +- Native arguments [main.cpp:89](/home/vikash/vllm.cpp-rdna3-wmma/examples/bench/main.cpp:89), model/cache configuration [bench_core.h:723](/home/vikash/vllm.cpp-rdna3-wmma/examples/bench/bench_core.h:723), output IDs [bench_core.h:1005](/home/vikash/vllm.cpp-rdna3-wmma/examples/bench/bench_core.h:1005). + +Remaining runtime limits include the older installed Torch dependency warning (the latest vLLM wheel was built against the container's Torch 2.12 development build), absent optional Mooncake/Rust components, and pending native A/B/trace results until the coordinator completes those runs. The first attempt's serialization failure is preserved separately from the successful primary retry. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest-gguf-trace.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest-gguf-trace.json new file mode 100644 index 000000000..a2efb8adb --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest-gguf-trace.json @@ -0,0 +1,961 @@ +{ + "status": "COMPLETE_PREPARATION", + "sealed_utc": "2026-09-14T05:00:59.028865+00:00", + "scope": "external trace-model path correction and original preparation artifacts", + "gpu_workloads_executed_by_adapter_author": false, + "first_primary_failure": "coordinator execution; retained separately; no generated tokens", + "active_gpu_outputs_excluded": [ + "primary-model-retry*", + "llama-model*", + "native-ab-model*", + "oracle-whole-workload.json" + ], + "files": [ + { + "path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "bytes": 2740937888, + "sha256": "00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/HANDOFF.md", + "bytes": 17112, + "sha256": "f8aeb5b132d332d416ce9d8a61aa997db695664053ea05a4a67b86885706ffc3" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/adapter-manifest.json", + "bytes": 40635, + "sha256": "c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-cpu-check.json", + "bytes": 78185, + "sha256": "4e87f435a6f50f2614df4920bf2589f76ac12ba5ceee0f5e7d54940d5f4f7d65" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-fixture-llama.json", + "bytes": 8831, + "sha256": "46b0b8bf3c0e7c003118a587fe6912372e3e87c5b0a5fe25a4d64385abc7eee4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-fixture-mismatch-primary.json", + "bytes": 8972, + "sha256": "9c9728852a163f34966b53bf42fbded0cb531fe7bc15b73d17a605707f9755a3" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-fixture-primary.json", + "bytes": 8972, + "sha256": "236c47aebfa75947df9c0d393144484655b4b6299cc7c92d884012b60400fbbc" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate_oracle_captures.py", + "bytes": 6488, + "sha256": "3ef9b56075cd1986f54771b4a7f29c8b802d6f71b244a1a9bc4dd245c55e7bf4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/build_llama_adapter.sh", + "bytes": 437, + "sha256": "5afdc37c0de789d73ba1cb94d1f2e4a8640f35275312c0fac743fd5e2da223ef" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/busy-sysfs/gpu_busy_percent", + "bytes": 2, + "sha256": "1121cfccd5913f0a63fec40a6ffd44ea64f9dc135c66634ba001d10bcf4302a2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama", + "bytes": 309920, + "sha256": "d82a9bc454ea92952f90c14a1e431ab86a51df40df677d731ecaa866f0bd7d80" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama.cpp", + "bytes": 17413, + "sha256": "b1a327d86a4b19ea0636f8bc37d8b1d4de00fe46bd528e011500238e7a22cb80" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py", + "bytes": 11553, + "sha256": "055f4b29f43d7f1defb2ae4b04709d1ea847bb2534341fc35712c4b8e789c308" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/closed_loop_metrics.py", + "bytes": 11056, + "sha256": "c03582073458fea18811ce080a712133b408cd5dcccb10fe5f77c76a117890ae" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/gpu_busy_percent", + "bytes": 2, + "sha256": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/mem_info_vram_total", + "bytes": 7, + "sha256": "14d01c6abd3f99f28e729fc9d1b8a0e5a76d4db6e708c591ff534f605e8d2d92" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/mem_info_vram_used", + "bytes": 7, + "sha256": "e150a1ec81e8e93e1eae2c3a77e66ec6dbd6a3b460f89c1d08aecf422ee401a0" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/pp_dpm_sclk", + "bytes": 12, + "sha256": "aa9eac52b5c01d98fa8ea1bfc078b3279c7f410731fbc5a24176726a7271ef10" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench", + "bytes": 17472, + "sha256": "2f02930e770469345b0cf1dc2bc8e5fba6c42c1f063b370481ee6435ed893e32" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench.cpp", + "bytes": 1146, + "sha256": "fd64f3d9b02bf0948f2d01ee0d147d74cf7c6d5e821f0b96f221398c5f6af2e2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/HANDOFF.md", + "bytes": 15901, + "sha256": "92baebc89b7b478da8429784169a8e3e25c7d1b2aeb48fefc144df7463731c0d" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/adapter-manifest.json", + "bytes": 40635, + "sha256": "c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/archive-map.json", + "bytes": 892, + "sha256": "78fda853afa77e21f2d6d642aebc58c4f9fa85e7c3bb96eca586c13ae7fd9b24" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/run_native_trace.py", + "bytes": 6175, + "sha256": "c49a39c43dd77f5548c010ddcd10dda4ef07e4673f935dab745e1b5b655c7a88" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/invalid-prompt-ids.json", + "bytes": 52, + "sha256": "8f78d4b9b1cfac907acfb7dddcd1a8cb22787a595627baef7fe1e5628dd3aa0d" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-adapter-build.exit", + "bytes": 2, + "sha256": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-adapter-build.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-input-error-check.json", + "bytes": 343, + "sha256": "9db5a8e37fce3bb0e5cb5a29a5151faaa8ba86f260a80a623685c0c26ac036f9" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-input-error-check.log", + "bytes": 295, + "sha256": "0d0d51005b010150ee3d593f10aaeafec1144873df6ab9fa6c43ef1f83ae4243" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor-cpu-check.jsonl", + "bytes": 6607, + "sha256": "6c652dac49a6df21aec0a04f850ab3666c71f505f125fb56d25f3efa308d0956" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor-docker-cpu-check.jsonl", + "bytes": 11196, + "sha256": "14c3e4c79c3d1700f3991081f6b0a6cb2a5bc13242aa825c352379135178be85" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor-timeout-check.jsonl", + "bytes": 4288, + "sha256": "896cf5f797d44d173bf696b24d9a3f1b535865a917d0f69fe6c282b6096319b8" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "bytes": 9737, + "sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-busy-check/summary.json", + "bytes": 7539, + "sha256": "b4c5c094e7f4f15e262398265a3903d4dff3261b70917dc13cfc0db4d86df425" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-busy-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.cpu-contention.json", + "bytes": 1791, + "sha256": "fd9e52db6e5e8650e267bb82957948b17a4370678419428fed56effc925a691b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.monitor.jsonl", + "bytes": 6623, + "sha256": "65814aa1619c66e9e55caf669c8d94fb833e151f33c5a1ff4a94709be22b5b35" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.cpu-contention.json", + "bytes": 1791, + "sha256": "59028dff0f550d32397bcc0fdfb2351b1f29cc9599fcbd5f2ae8f0a8ef0f49b7" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.monitor.jsonl", + "bytes": 6621, + "sha256": "6f02b396e71f078a24f3d92a8c0194eaed758a0490023a77e13a09ef36a0d8a7" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.cpu-contention.json", + "bytes": 1786, + "sha256": "49db60395516816ee5ee62fc66dc7106a67b8ef9ccabc10cd25d69144d979da4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.monitor.jsonl", + "bytes": 6624, + "sha256": "d307676ed50f6bb06119591ef7ffdd2a2bca4e73ea61332ee8a99078694d423e" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.cpu-contention.json", + "bytes": 1791, + "sha256": "6d44e152edfd6fa44e72516bce3669afe1fc864e956061b953e95b47a3fe58c8" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.monitor.jsonl", + "bytes": 6626, + "sha256": "b8566568b6a3cdf9f1922438047f863ab9acf84b526c7107e4fb3557d7204621" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.cpu-contention.json", + "bytes": 1791, + "sha256": "8f7fc0d675aabcc108fb203ffcda9d1157b2f6b4172ce77504a9fe0e53f10104" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.monitor.jsonl", + "bytes": 6626, + "sha256": "8afd3b5461291bb23014f6f0a9ce60a4db473a48203eed357c32e25f041e5fb6" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.cpu-contention.json", + "bytes": 1791, + "sha256": "83eebd3a2606fabff26eeb2851115e7b2fe398dcf49cf3a961c826356fb65db9" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.monitor.jsonl", + "bytes": 6626, + "sha256": "2670ed03a758bc00395ea05d64ae27e87c757273516d58a8f9d515e8e431fd02" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/summary.json", + "bytes": 43503, + "sha256": "7184df6e69b2c4cb3fa6e0ae9e7450919b35513b3498aaf5d77b1feb8bef9993" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.cpu-contention.json", + "bytes": 1741, + "sha256": "1d5bbd951488f17c41d56b6e75a7095d9f90c1c4a61ca1fb5df875a2311a6aec" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.monitor.jsonl", + "bytes": 6659, + "sha256": "9259ef2f73666e173d58c650ebf6b3aaa5ba4856113f31ad6e940e889de43728" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.output-token-ids.json", + "bytes": 274, + "sha256": "7fca349ab85335215141f2969a9b7ffbe8e42719ab47d18d5a72abaee2a6fe77" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.cpu-contention.json", + "bytes": 1741, + "sha256": "fc18d0fa722f7027bf70360170fad173e4e5da699f1223c7c98b1d0dc4f93ab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.monitor.jsonl", + "bytes": 6659, + "sha256": "acfe8ad38754d66feee9ac8c467a5065cd5d81866e3442efa31316dc0690a39f" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.output-token-ids.json", + "bytes": 274, + "sha256": "7fca349ab85335215141f2969a9b7ffbe8e42719ab47d18d5a72abaee2a6fe77" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.cpu-contention.json", + "bytes": 1785, + "sha256": "634178a4c5e7084e9f2fd3713b7dbfa56009755c1f82aab7f06dfc486bcbadec" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.monitor.jsonl", + "bytes": 6658, + "sha256": "264e45c807d0fab1c5804e22c30621a837e6ffe0ae1cd28fb715255a1ae45b0a" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.output-token-ids.json", + "bytes": 274, + "sha256": "7fca349ab85335215141f2969a9b7ffbe8e42719ab47d18d5a72abaee2a6fe77" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.cpu-contention.json", + "bytes": 1741, + "sha256": "2da1b2bfbd9b0c61da0ef99b551af794029d804e16a37b990e53fff9dda995f1" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.monitor.jsonl", + "bytes": 6663, + "sha256": "56c11985a5baf1063b04e897c4e2b619e1afea3e1d9a9a994a2cd267df7921e2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.cpu-contention.json", + "bytes": 1771, + "sha256": "2ea5dfc15a0c4f727056b83f4be5d6c4cf341e5c2e1fa0fff5b8703efb1a6843" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.monitor.jsonl", + "bytes": 6661, + "sha256": "7f9108e904b7202fa83850e8961f2b474868d18490e7db6a817f74c623448299" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.cpu-contention.json", + "bytes": 1785, + "sha256": "95c3123122b12927b21d4eab05ec1e2c3618683add734eaaa637873c12d636ba" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.monitor.jsonl", + "bytes": 5955, + "sha256": "43de37356af00abe5ff0c39d5d4cab714222650db2aa28915d07cf96306dc2d2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/summary.json", + "bytes": 42965, + "sha256": "296a1c1731df9071dfee23a9e45c3fbc9f455a6b8676bbe42ade2dd7da1e5e5e" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.cpu-contention.json", + "bytes": 1790, + "sha256": "1fb22f2974b2895e5b8372b7bd6cf7d45b054b079413ce956355ea46024f401b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.monitor.jsonl", + "bytes": 6092, + "sha256": "496dfbe742daf61ff3b5b24fd3aa9287f2cd03f15474ab6ab23880e71ae59cf0" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.cpu-contention.json", + "bytes": 1800, + "sha256": "5a3e279932788a72976829d46b257b6de1442214abfff7d440226b719e649c20" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.monitor.jsonl", + "bytes": 6707, + "sha256": "05f0d6fd1f8335f8a1c1673f94afc23f1b51ad29e90006ca8979bed6f55f7b91" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.cpu-contention.json", + "bytes": 1800, + "sha256": "0e070f8c38922048c5e91af7afb18a7ff5e29596795a22bea9dbb2732530d321" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.monitor.jsonl", + "bytes": 6705, + "sha256": "63fa6b17243d2fbe313ee3b681006f0f66afad5c82acb705ebe0a1198bb101d7" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.cpu-contention.json", + "bytes": 1800, + "sha256": "cac1720e612567c9fa94e1bfb777a10a9607a03668e6bb4c877cd823c11f7496" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.monitor.jsonl", + "bytes": 6710, + "sha256": "c35fb5b65844ae90a0ddac2075fd0fc0865e9ee032998774faccd562b86bf73b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.cpu-contention.json", + "bytes": 1800, + "sha256": "2b00d5ecefc8e6c8d2ce3818305b9ae96fc63cd93a466976b2319a1db8c54f2c" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.monitor.jsonl", + "bytes": 6710, + "sha256": "5efca6ba7ea6fb7096a4e26f1b3121c3ff0c01756844f5cc60780e2407649e62" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.cpu-contention.json", + "bytes": 1800, + "sha256": "56887853d3ae2a37157b8567cdfadc3e8f4d935fa35ef4cc064bee2ecaf8bfa0" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.monitor.jsonl", + "bytes": 6710, + "sha256": "9d8c0bf02251856d41dceb21d0ced9458871996f03e9fc02d9e83479954dd4a4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/summary.json", + "bytes": 49160, + "sha256": "ccd8fd7373d50e782f52051363c8180da696bc02b65a1a8a33c52c64def5d66b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off-gguf-preparation/recipe-and-result.json", + "bytes": 7153, + "sha256": "ec94be4b7dc79aa51cc87c1a5115d8cda71dc1189122e193d337c2ed010a3e85" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off-gguf-preparation/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off-preparation/recipe-and-result.json", + "bytes": 6684, + "sha256": "b97ce7aab8988355394d4d71c328e88714b6a865af02d5ace11b35b212fc96bf" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off-preparation/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on-gguf-preparation/recipe-and-result.json", + "bytes": 7150, + "sha256": "802d2bb422ce369620808afdce727fe0fc3cf9567006b947061658130629f29a" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on-gguf-preparation/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on-preparation/recipe-and-result.json", + "bytes": 6681, + "sha256": "d0228945f98074bd00b49880130d8d478128ec56663bc9f272baf06954f83aac" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on-preparation/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model.json", + "bytes": 30536, + "sha256": "f152650d003011ab1bbb0155f40331a1839c466af0c4e5fc193b36705eade0ba" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids.json", + "bytes": 4532, + "sha256": "ad4e063aff43e9a45d595eb32c9867fabc7f9dd1fbc496476a6cac1489251b3b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/python-gpu-named-under-lock.sh", + "bytes": 1267, + "sha256": "44043dc3072cba0296f0f148406b8b4b56d78d02db285eb49761260cdec15a59" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/retry_primary_under_lock.sh", + "bytes": 677, + "sha256": "e7947eb4c2935f74f34fe9200c401677117d22316c2eb299688f3a72a27f2fd1" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py", + "bytes": 15285, + "sha256": "397f10f847ad3e9643d6a95cfcbf66d4beaa2eb7b3b72b2e474659dafe847c7e" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "bytes": 6603, + "sha256": "f8c131d1fbcbaf9e54b8a34756e1d7cd4ea2692b7a9ee3b01f671be958529c7b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/seal_adapter_manifest.py", + "bytes": 4946, + "sha256": "d62dc73ef8128bed4f777a163a07845b490bd82ae90d446ebf8c5d1162b355d4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/seal_trace_model_fix_manifest.py", + "bytes": 3073, + "sha256": "8d46df17ff263b9026983313f96e27bf59c160fcb4798f5665dc8ef6b401c114" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/tokenization-check.json", + "bytes": 10046, + "sha256": "62a7dcf334ac5d2f90373fe1a7b520856a3e4082070b708ca8394846bcdce479" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/tokenization-check.log", + "bytes": 534, + "sha256": "9653420fb50fb22c7eb37a00f95df9892b17a02546afa597a1cb9fa2e11882bc" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/tokenization-check.prompt-ids.json", + "bytes": 4532, + "sha256": "ad4e063aff43e9a45d595eb32c9867fabc7f9dd1fbc496476a6cac1489251b3b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/trace-gguf-model-check.json", + "bytes": 377, + "sha256": "60abb9deaf962f85a8326909cf96c4d5cc7a5991b401dd95861b4813ecd67c19" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/logs/build-provenance.json", + "bytes": 11566, + "sha256": "a9ff8246fc9993f864eeec15392395811ef129512526b5a5bb9a98ef9d2447b5" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/logs/import-provenance.json", + "bytes": 2881, + "sha256": "9a1fa88bb359da713eecfcb3deddd2a3906863de97dca4e4976c06c59566a5a1" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/logs/plugin-source-artifact-verification.json", + "bytes": 288, + "sha256": "ac1ec33a6fed8169d4fb7e2c42bdb1c6c17be2ed4ff52115f5542badc411e148" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/python-gpu-under-lock.sh", + "bytes": 1149, + "sha256": "0427499801339c7e1dd59ee3aaef5ad75726da379b2ffbf3962fe65845548425" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/python-no-gpu.sh", + "bytes": 507, + "sha256": "8623ca12c254b6c03f0cbb475f714ebddd1035d1618d7ef79c91f3acc5b20bbb" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/config.json", + "bytes": 1875, + "sha256": "3f519a65a220e7637dbfae800f2b94b907a63c84cb85993acdeebda47a63824c" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer.json", + "bytes": 12807982, + "sha256": "5f9e4d4901a92b997e463c1f46055088b6cca5ca61a6522d1b9f64c4bb81cb42" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer_config.json", + "bytes": 16710, + "sha256": "316230d6a809701f4db5ea8f8fc862bc3a6f3229c937c174e674ff3ca0a64ac8" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "bytes": 2042, + "sha256": "4cab7f33eef255088ed38506aedb5750f3dfc0201a5c86459b385a1f5430468b" + } + ], + "upstream_worktrees": { + "vllm-source": { + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/vllm-source", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "39545e475d3627287ff69c25465dc0bd405f67e1\n", + "stderr": "" + }, + "status": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/vllm-source", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + }, + "llama-source": { + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/llama-source", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "093a2f86c3e37c54fa3e1f9efb17b304f3433abd\n", + "stderr": "" + }, + "status": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/llama-source", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + }, + "plugin-source": { + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/plugin-source", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "d4c1f0d082fc7cd4350da56689109a01c1f29d6c\n", + "stderr": "" + }, + "status": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/plugin-source", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "llama_adapter_compiler": { + "argv": [ + "/opt/rocm/llvm/bin/clang++", + "--version" + ], + "exit_code": 0, + "stdout": "AMD clang version 23.0.0git (https://github.com/ROCm/llvm-project.git 8f497e0992fb7513f7f78a6f6b6f1056c375e961)\nTarget: x86_64-unknown-linux-gnu\nThread model: posix\nInstalledDir: /opt/rocm/core-10.0/lib/llvm/bin\n", + "stderr": "" + }, + "llama_adapter_dynamic_dependencies": { + "argv": [ + "ldd", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama" + ], + "exit_code": 0, + "stdout": "\tlinux-vdso.so.1 (0x000071adc1def000)\n\tlibllama.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libllama.so.0 (0x000071adc1a00000)\n\tlibggml.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml.so.0 (0x000071adc1d9e000)\n\tlibggml-base.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml-base.so.0 (0x000071adc192e000)\n\tlibcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x000071adc1200000)\n\tlibstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000071adc0e00000)\n\tlibm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000071adc1821000)\n\tlibgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000071adc17f3000)\n\tlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000071adc0a00000)\n\tlibggml-cpu.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml-cpu.so.0 (0x000071adc0c47000)\n\tlibggml-hip.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml-hip.so.0 (0x000071adbc800000)\n\t/lib64/ld-linux-x86-64.so.2 (0x000071adc1df1000)\n\tlibomp.so => /opt/rocm/core-10.0/lib/llvm/lib/libomp.so (0x000071adc10ff000)\n\tlibhipblas.so.3 => /opt/rocm/lib/libhipblas.so.3 (0x000071adc1741000)\n\tlibrocblas.so.5 => /opt/rocm/lib/librocblas.so.5 (0x000071adbaa00000)\n\tlibamdhip64.so.7 => /opt/rocm/lib/libamdhip64.so.7 (0x000071adb8e00000)\n\tlibpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x000071adc1d95000)\n\tlibrt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x000071adc1d8e000)\n\tlibdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x000071adc173c000)\n\tlibrocsolver.so.0 => /opt/rocm/lib/librocsolver.so.0 (0x000071adb5a00000)\n\tlibroctx64.so.4 => /opt/rocm/lib/libroctx64.so.4 (0x000071adc1738000)\n\tlibhipblaslt.so.1 => /opt/rocm/lib/libhipblaslt.so.1 (0x000071adb5200000)\n\tlibrocm_kpack.so.0 => /opt/rocm/lib/librocm_kpack.so.0 (0x000071adc10bb000)\n\tlibrocprofiler-register.so.0 => /opt/rocm/lib/librocprofiler-register.so.0 (0x000071adc0924000)\n\tlibamd_comgr.so.3 => /opt/rocm/lib/libamd_comgr.so.3 (0x000071adb4400000)\n\tlibhsa-runtime64.so.1 => /opt/rocm/lib/libhsa-runtime64.so.1 (0x000071adb3e00000)\n\tliborigami.so.1 => /opt/rocm/lib/liborigami.so.1 (0x000071adbc78c000)\n\tlibrocm_sysdeps_z.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1 (0x000071adc1718000)\n\tlibrocroller.so.1 => /opt/rocm/lib/librocroller.so.1 (0x000071adaae00000)\n\tlibrocm_sysdeps_zstd.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1 (0x000071adb5931000)\n\tlibclang-cpp.so.23.0git => /opt/rocm/lib/llvm/lib/libclang-cpp.so.23.0git (0x000071ada6600000)\n\tlibLLVM.so.23.0git => /opt/rocm/lib/llvm/lib/libLLVM.so.23.0git (0x000071ad9f600000)\n\tlibrocm_sysdeps_elf.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1 (0x000071adc109f000)\n\tlibrocm_sysdeps_drm.so.2 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2 (0x000071adc108a000)\n\tlibrocm_sysdeps_drm_amdgpu.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1 (0x000071adc0c32000)\n\tlibrocm_sysdeps_numa.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1 (0x000071adc0c23000)\n\tlibrocm_sysdeps_liblzma.so.5 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5 (0x000071adc08f3000)\n\tlibrocm_sysdeps_bz2.so => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so (0x000071adc08da000)\n", + "stderr": "" + }, + "fake_benchmark_compile_argv": [ + "/usr/bin/c++", + "-std=c++17", + "-O2", + "-Wall", + "-Wextra", + "-Werror", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench" + ], + "check_expectations": { + "tokenization-check.json": "TOKENIZED_ONLY; prompt counts [183,174]", + "llama-adapter-build.exit": "0", + "llama-input-error-check.json": "ERROR input_validation; noninteger prompt refused before backend initialization", + "monitor-cpu-check.jsonl": "COMPLETE; process RSS/PSS sampled using synthetic GPU sysfs files", + "monitor-timeout-check.jsonl": "TIMEOUT; own CPU child removed; monitor exit 124", + "monitor-docker-cpu-check.jsonl": "COMPLETE; actual container host PID distinct from CLI PID; no devices exposed", + "native-ab-cpu-check/summary.json": "COMPLETE; six same-output CPU processes in fixed order", + "native-ab-mismatch-check/summary.json": "TOKEN_MISMATCH; off-arm mutation detected; exit 1", + "native-ab-busy-check/summary.json": "ERROR; synthetic busy=3 rejected before any process launch; exit 1", + "native-ab-oracle-mismatch-check/summary.json": "TOKEN_MISMATCH; same-binary PASS and numeric ratios retained; cross-oracle FAIL; exit 1", + "aggregate-cpu-check.json": "COMPLETE; independent expected duration 10s, 8 requests, 1428 inputs, 128 outputs, 142.8 input tok/s and 12.8 output tok/s", + "native-trace-on-preparation/recipe-and-result.json": "PREPARED; exact rocprofv3 on argv; no GPU workload launched", + "native-trace-off-preparation/recipe-and-result.json": "PREPARED; exact rocprofv3 off argv; no GPU workload launched", + "trace-gguf-model-check.json": "PASS; syntax, exact model argv/hash, eight-request dataset, trace bounds, and preserved original evidence", + "native-trace-on-gguf-preparation/recipe-and-result.json": "PREPARED; exact retained GGUF argv and verified model SHA256; eight requests; no GPU workload launched", + "native-trace-off-gguf-preparation/recipe-and-result.json": "PREPARED; exact retained GGUF argv and verified model SHA256; eight requests; no GPU workload launched" + }, + "prior_manifest": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/adapter-manifest.json", + "bytes": 40635, + "sha256": "c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254" + }, + "correction": { + "changed_paths": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/HANDOFF.md", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py" + ], + "reason": "native model-directory argument selected the safetensors loader without shards; use the retained GGUF file", + "unchanged_running_driver": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py", + "bytes": 15285, + "sha256": "397f10f847ad3e9643d6a95cfcbf66d4beaa2eb7b3b72b2e474659dafe847c7e" + }, + "preserved_prior_bytes": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/archive-map.json", + "gpu_executed_by_helper": false + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest.json new file mode 100644 index 000000000..8dd4b2407 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-adapter-manifest.json @@ -0,0 +1,879 @@ +{ + "status": "COMPLETE_PREPARATION", + "sealed_utc": "2026-09-14T04:57:13.950916+00:00", + "scope": "external scratch measurement adapters and completed CPU checks", + "gpu_workloads_executed_by_adapter_author": false, + "first_primary_failure": "coordinator execution; retained separately; no generated tokens", + "active_gpu_outputs_excluded": [ + "primary-model-retry*", + "llama-model*", + "native-ab-model*", + "oracle-whole-workload.json" + ], + "files": [ + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/HANDOFF.md", + "bytes": 15901, + "sha256": "92baebc89b7b478da8429784169a8e3e25c7d1b2aeb48fefc144df7463731c0d" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-cpu-check.json", + "bytes": 78185, + "sha256": "4e87f435a6f50f2614df4920bf2589f76ac12ba5ceee0f5e7d54940d5f4f7d65" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-fixture-llama.json", + "bytes": 8831, + "sha256": "46b0b8bf3c0e7c003118a587fe6912372e3e87c5b0a5fe25a4d64385abc7eee4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-fixture-mismatch-primary.json", + "bytes": 8972, + "sha256": "9c9728852a163f34966b53bf42fbded0cb531fe7bc15b73d17a605707f9755a3" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate-fixture-primary.json", + "bytes": 8972, + "sha256": "236c47aebfa75947df9c0d393144484655b4b6299cc7c92d884012b60400fbbc" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate_oracle_captures.py", + "bytes": 6488, + "sha256": "3ef9b56075cd1986f54771b4a7f29c8b802d6f71b244a1a9bc4dd245c55e7bf4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/build_llama_adapter.sh", + "bytes": 437, + "sha256": "5afdc37c0de789d73ba1cb94d1f2e4a8640f35275312c0fac743fd5e2da223ef" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/busy-sysfs/gpu_busy_percent", + "bytes": 2, + "sha256": "1121cfccd5913f0a63fec40a6ffd44ea64f9dc135c66634ba001d10bcf4302a2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama", + "bytes": 309920, + "sha256": "d82a9bc454ea92952f90c14a1e431ab86a51df40df677d731ecaa866f0bd7d80" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama.cpp", + "bytes": 17413, + "sha256": "b1a327d86a4b19ea0636f8bc37d8b1d4de00fe46bd528e011500238e7a22cb80" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py", + "bytes": 11553, + "sha256": "055f4b29f43d7f1defb2ae4b04709d1ea847bb2534341fc35712c4b8e789c308" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/closed_loop_metrics.py", + "bytes": 11056, + "sha256": "c03582073458fea18811ce080a712133b408cd5dcccb10fe5f77c76a117890ae" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/gpu_busy_percent", + "bytes": 2, + "sha256": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/mem_info_vram_total", + "bytes": 7, + "sha256": "14d01c6abd3f99f28e729fc9d1b8a0e5a76d4db6e708c591ff534f605e8d2d92" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/mem_info_vram_used", + "bytes": 7, + "sha256": "e150a1ec81e8e93e1eae2c3a77e66ec6dbd6a3b460f89c1d08aecf422ee401a0" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake-sysfs/pp_dpm_sclk", + "bytes": 12, + "sha256": "aa9eac52b5c01d98fa8ea1bfc078b3279c7f410731fbc5a24176726a7271ef10" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench", + "bytes": 17472, + "sha256": "2f02930e770469345b0cf1dc2bc8e5fba6c42c1f063b370481ee6435ed893e32" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench.cpp", + "bytes": 1146, + "sha256": "fd64f3d9b02bf0948f2d01ee0d147d74cf7c6d5e821f0b96f221398c5f6af2e2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/invalid-prompt-ids.json", + "bytes": 52, + "sha256": "8f78d4b9b1cfac907acfb7dddcd1a8cb22787a595627baef7fe1e5628dd3aa0d" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-adapter-build.exit", + "bytes": 2, + "sha256": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-adapter-build.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-input-error-check.json", + "bytes": 343, + "sha256": "9db5a8e37fce3bb0e5cb5a29a5151faaa8ba86f260a80a623685c0c26ac036f9" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-input-error-check.log", + "bytes": 295, + "sha256": "0d0d51005b010150ee3d593f10aaeafec1144873df6ab9fa6c43ef1f83ae4243" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor-cpu-check.jsonl", + "bytes": 6607, + "sha256": "6c652dac49a6df21aec0a04f850ab3666c71f505f125fb56d25f3efa308d0956" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor-docker-cpu-check.jsonl", + "bytes": 11196, + "sha256": "14c3e4c79c3d1700f3991081f6b0a6cb2a5bc13242aa825c352379135178be85" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor-timeout-check.jsonl", + "bytes": 4288, + "sha256": "896cf5f797d44d173bf696b24d9a3f1b535865a917d0f69fe6c282b6096319b8" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "bytes": 9737, + "sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-busy-check/summary.json", + "bytes": 7539, + "sha256": "b4c5c094e7f4f15e262398265a3903d4dff3261b70917dc13cfc0db4d86df425" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-busy-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.cpu-contention.json", + "bytes": 1791, + "sha256": "fd9e52db6e5e8650e267bb82957948b17a4370678419428fed56effc925a691b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.monitor.jsonl", + "bytes": 6623, + "sha256": "65814aa1619c66e9e55caf669c8d94fb833e151f33c5a1ff4a94709be22b5b35" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.cpu-contention.json", + "bytes": 1791, + "sha256": "59028dff0f550d32397bcc0fdfb2351b1f29cc9599fcbd5f2ae8f0a8ef0f49b7" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.monitor.jsonl", + "bytes": 6621, + "sha256": "6f02b396e71f078a24f3d92a8c0194eaed758a0490023a77e13a09ef36a0d8a7" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.cpu-contention.json", + "bytes": 1786, + "sha256": "49db60395516816ee5ee62fc66dc7106a67b8ef9ccabc10cd25d69144d979da4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.monitor.jsonl", + "bytes": 6624, + "sha256": "d307676ed50f6bb06119591ef7ffdd2a2bca4e73ea61332ee8a99078694d423e" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/off3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.cpu-contention.json", + "bytes": 1791, + "sha256": "6d44e152edfd6fa44e72516bce3669afe1fc864e956061b953e95b47a3fe58c8" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.monitor.jsonl", + "bytes": 6626, + "sha256": "b8566568b6a3cdf9f1922438047f863ab9acf84b526c7107e4fb3557d7204621" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.cpu-contention.json", + "bytes": 1791, + "sha256": "8f7fc0d675aabcc108fb203ffcda9d1157b2f6b4172ce77504a9fe0e53f10104" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.monitor.jsonl", + "bytes": 6626, + "sha256": "8afd3b5461291bb23014f6f0a9ce60a4db473a48203eed357c32e25f041e5fb6" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.cpu-contention.json", + "bytes": 1791, + "sha256": "83eebd3a2606fabff26eeb2851115e7b2fe398dcf49cf3a961c826356fb65db9" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.monitor.jsonl", + "bytes": 6626, + "sha256": "2670ed03a758bc00395ea05d64ae27e87c757273516d58a8f9d515e8e431fd02" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/on3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/summary.json", + "bytes": 43503, + "sha256": "7184df6e69b2c4cb3fa6e0ae9e7450919b35513b3498aaf5d77b1feb8bef9993" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-cpu-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.cpu-contention.json", + "bytes": 1741, + "sha256": "1d5bbd951488f17c41d56b6e75a7095d9f90c1c4a61ca1fb5df875a2311a6aec" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.monitor.jsonl", + "bytes": 6659, + "sha256": "9259ef2f73666e173d58c650ebf6b3aaa5ba4856113f31ad6e940e889de43728" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off1.output-token-ids.json", + "bytes": 274, + "sha256": "7fca349ab85335215141f2969a9b7ffbe8e42719ab47d18d5a72abaee2a6fe77" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.cpu-contention.json", + "bytes": 1741, + "sha256": "fc18d0fa722f7027bf70360170fad173e4e5da699f1223c7c98b1d0dc4f93ab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.monitor.jsonl", + "bytes": 6659, + "sha256": "acfe8ad38754d66feee9ac8c467a5065cd5d81866e3442efa31316dc0690a39f" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off2.output-token-ids.json", + "bytes": 274, + "sha256": "7fca349ab85335215141f2969a9b7ffbe8e42719ab47d18d5a72abaee2a6fe77" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.cpu-contention.json", + "bytes": 1785, + "sha256": "634178a4c5e7084e9f2fd3713b7dbfa56009755c1f82aab7f06dfc486bcbadec" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.monitor.jsonl", + "bytes": 6658, + "sha256": "264e45c807d0fab1c5804e22c30621a837e6ffe0ae1cd28fb715255a1ae45b0a" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/off3.output-token-ids.json", + "bytes": 274, + "sha256": "7fca349ab85335215141f2969a9b7ffbe8e42719ab47d18d5a72abaee2a6fe77" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.cpu-contention.json", + "bytes": 1741, + "sha256": "2da1b2bfbd9b0c61da0ef99b551af794029d804e16a37b990e53fff9dda995f1" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.monitor.jsonl", + "bytes": 6663, + "sha256": "56c11985a5baf1063b04e897c4e2b619e1afea3e1d9a9a994a2cd267df7921e2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.cpu-contention.json", + "bytes": 1771, + "sha256": "2ea5dfc15a0c4f727056b83f4be5d6c4cf341e5c2e1fa0fff5b8703efb1a6843" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.monitor.jsonl", + "bytes": 6661, + "sha256": "7f9108e904b7202fa83850e8961f2b474868d18490e7db6a817f74c623448299" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.cpu-contention.json", + "bytes": 1785, + "sha256": "95c3123122b12927b21d4eab05ec1e2c3618683add734eaaa637873c12d636ba" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.monitor.jsonl", + "bytes": 5955, + "sha256": "43de37356af00abe5ff0c39d5d4cab714222650db2aa28915d07cf96306dc2d2" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/on3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/summary.json", + "bytes": 42965, + "sha256": "296a1c1731df9071dfee23a9e45c3fbc9f455a6b8676bbe42ade2dd7da1e5e5e" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-mismatch-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.cpu-contention.json", + "bytes": 1790, + "sha256": "1fb22f2974b2895e5b8372b7bd6cf7d45b054b079413ce956355ea46024f401b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.monitor.jsonl", + "bytes": 6092, + "sha256": "496dfbe742daf61ff3b5b24fd3aa9287f2cd03f15474ab6ab23880e71ae59cf0" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.cpu-contention.json", + "bytes": 1800, + "sha256": "5a3e279932788a72976829d46b257b6de1442214abfff7d440226b719e649c20" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.monitor.jsonl", + "bytes": 6707, + "sha256": "05f0d6fd1f8335f8a1c1673f94afc23f1b51ad29e90006ca8979bed6f55f7b91" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.cpu-contention.json", + "bytes": 1800, + "sha256": "0e070f8c38922048c5e91af7afb18a7ff5e29596795a22bea9dbb2732530d321" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.monitor.jsonl", + "bytes": 6705, + "sha256": "63fa6b17243d2fbe313ee3b681006f0f66afad5c82acb705ebe0a1198bb101d7" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/off3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.cpu-contention.json", + "bytes": 1800, + "sha256": "cac1720e612567c9fa94e1bfb777a10a9607a03668e6bb4c877cd823c11f7496" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.monitor.jsonl", + "bytes": 6710, + "sha256": "c35fb5b65844ae90a0ddac2075fd0fc0865e9ee032998774faccd562b86bf73b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on1.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.cpu-contention.json", + "bytes": 1800, + "sha256": "2b00d5ecefc8e6c8d2ce3818305b9ae96fc63cd93a466976b2319a1db8c54f2c" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.monitor.jsonl", + "bytes": 6710, + "sha256": "5efca6ba7ea6fb7096a4e26f1b3121c3ff0c01756844f5cc60780e2407649e62" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on2.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.cpu-contention.json", + "bytes": 1800, + "sha256": "56887853d3ae2a37157b8567cdfadc3e8f4d935fa35ef4cc064bee2ecaf8bfa0" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.monitor.jsonl", + "bytes": 6710, + "sha256": "9d8c0bf02251856d41dceb21d0ced9458871996f03e9fc02d9e83479954dd4a4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.monitor.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.monitor.stdout.log", + "bytes": 211, + "sha256": "0307721ed14d031e9afa87a0aeb35575c31ba5879e5270ef540b06db29c5bab4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/on3.output-token-ids.json", + "bytes": 274, + "sha256": "c7b9ca7399d8a8ef4346af3357cbb5d88aeff49fb774589dbbbce187c0e8f961" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/summary.json", + "bytes": 49160, + "sha256": "ccd8fd7373d50e782f52051363c8180da696bc02b65a1a8a33c52c64def5d66b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-oracle-mismatch-check/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off-preparation/recipe-and-result.json", + "bytes": 6684, + "sha256": "b97ce7aab8988355394d4d71c328e88714b6a865af02d5ace11b35b212fc96bf" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off-preparation/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on-preparation/recipe-and-result.json", + "bytes": 6681, + "sha256": "d0228945f98074bd00b49880130d8d478128ec56663bc9f272baf06954f83aac" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on-preparation/workload-eight.json", + "bytes": 8159, + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model.json", + "bytes": 30536, + "sha256": "f152650d003011ab1bbb0155f40331a1839c466af0c4e5fc193b36705eade0ba" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids.json", + "bytes": 4532, + "sha256": "ad4e063aff43e9a45d595eb32c9867fabc7f9dd1fbc496476a6cac1489251b3b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/python-gpu-named-under-lock.sh", + "bytes": 1267, + "sha256": "44043dc3072cba0296f0f148406b8b4b56d78d02db285eb49761260cdec15a59" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/retry_primary_under_lock.sh", + "bytes": 677, + "sha256": "e7947eb4c2935f74f34fe9200c401677117d22316c2eb299688f3a72a27f2fd1" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py", + "bytes": 15285, + "sha256": "397f10f847ad3e9643d6a95cfcbf66d4beaa2eb7b3b72b2e474659dafe847c7e" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "bytes": 6175, + "sha256": "c49a39c43dd77f5548c010ddcd10dda4ef07e4673f935dab745e1b5b655c7a88" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/seal_adapter_manifest.py", + "bytes": 4946, + "sha256": "d62dc73ef8128bed4f777a163a07845b490bd82ae90d446ebf8c5d1162b355d4" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/tokenization-check.json", + "bytes": 10046, + "sha256": "62a7dcf334ac5d2f90373fe1a7b520856a3e4082070b708ca8394846bcdce479" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/tokenization-check.log", + "bytes": 534, + "sha256": "9653420fb50fb22c7eb37a00f95df9892b17a02546afa597a1cb9fa2e11882bc" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/tokenization-check.prompt-ids.json", + "bytes": 4532, + "sha256": "ad4e063aff43e9a45d595eb32c9867fabc7f9dd1fbc496476a6cac1489251b3b" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/logs/build-provenance.json", + "bytes": 11566, + "sha256": "a9ff8246fc9993f864eeec15392395811ef129512526b5a5bb9a98ef9d2447b5" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/logs/import-provenance.json", + "bytes": 2881, + "sha256": "9a1fa88bb359da713eecfcb3deddd2a3906863de97dca4e4976c06c59566a5a1" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/logs/plugin-source-artifact-verification.json", + "bytes": 288, + "sha256": "ac1ec33a6fed8169d4fb7e2c42bdb1c6c17be2ed4ff52115f5542badc411e148" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/python-gpu-under-lock.sh", + "bytes": 1149, + "sha256": "0427499801339c7e1dd59ee3aaef5ad75726da379b2ffbf3962fe65845548425" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/python-no-gpu.sh", + "bytes": 507, + "sha256": "8623ca12c254b6c03f0cbb475f714ebddd1035d1618d7ef79c91f3acc5b20bbb" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/config.json", + "bytes": 1875, + "sha256": "3f519a65a220e7637dbfae800f2b94b907a63c84cb85993acdeebda47a63824c" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer.json", + "bytes": 12807982, + "sha256": "5f9e4d4901a92b997e463c1f46055088b6cca5ca61a6522d1b9f64c4bb81cb42" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer_config.json", + "bytes": 16710, + "sha256": "316230d6a809701f4db5ea8f8fc862bc3a6f3229c937c174e674ff3ca0a64ac8" + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "bytes": 2042, + "sha256": "4cab7f33eef255088ed38506aedb5750f3dfc0201a5c86459b385a1f5430468b" + } + ], + "upstream_worktrees": { + "vllm-source": { + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/vllm-source", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "39545e475d3627287ff69c25465dc0bd405f67e1\n", + "stderr": "" + }, + "status": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/vllm-source", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + }, + "llama-source": { + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/llama-source", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "093a2f86c3e37c54fa3e1f9efb17b304f3433abd\n", + "stderr": "" + }, + "status": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/llama-source", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + }, + "plugin-source": { + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/plugin-source", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "d4c1f0d082fc7cd4350da56689109a01c1f29d6c\n", + "stderr": "" + }, + "status": { + "argv": [ + "git", + "-C", + "/home/vikash/oracle/rdna3-wmma-latest/plugin-source", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + } + } + }, + "llama_adapter_compiler": { + "argv": [ + "/opt/rocm/llvm/bin/clang++", + "--version" + ], + "exit_code": 0, + "stdout": "AMD clang version 23.0.0git (https://github.com/ROCm/llvm-project.git 8f497e0992fb7513f7f78a6f6b6f1056c375e961)\nTarget: x86_64-unknown-linux-gnu\nThread model: posix\nInstalledDir: /opt/rocm/core-10.0/lib/llvm/bin\n", + "stderr": "" + }, + "llama_adapter_dynamic_dependencies": { + "argv": [ + "ldd", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama" + ], + "exit_code": 0, + "stdout": "\tlinux-vdso.so.1 (0x000071adc1def000)\n\tlibllama.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libllama.so.0 (0x000071adc1a00000)\n\tlibggml.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml.so.0 (0x000071adc1d9e000)\n\tlibggml-base.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml-base.so.0 (0x000071adc192e000)\n\tlibcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x000071adc1200000)\n\tlibstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x000071adc0e00000)\n\tlibm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000071adc1821000)\n\tlibgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000071adc17f3000)\n\tlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000071adc0a00000)\n\tlibggml-cpu.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml-cpu.so.0 (0x000071adc0c47000)\n\tlibggml-hip.so.0 => /home/vikash/oracle/rdna3-wmma-latest/llama-build/bin/libggml-hip.so.0 (0x000071adbc800000)\n\t/lib64/ld-linux-x86-64.so.2 (0x000071adc1df1000)\n\tlibomp.so => /opt/rocm/core-10.0/lib/llvm/lib/libomp.so (0x000071adc10ff000)\n\tlibhipblas.so.3 => /opt/rocm/lib/libhipblas.so.3 (0x000071adc1741000)\n\tlibrocblas.so.5 => /opt/rocm/lib/librocblas.so.5 (0x000071adbaa00000)\n\tlibamdhip64.so.7 => /opt/rocm/lib/libamdhip64.so.7 (0x000071adb8e00000)\n\tlibpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x000071adc1d95000)\n\tlibrt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x000071adc1d8e000)\n\tlibdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x000071adc173c000)\n\tlibrocsolver.so.0 => /opt/rocm/lib/librocsolver.so.0 (0x000071adb5a00000)\n\tlibroctx64.so.4 => /opt/rocm/lib/libroctx64.so.4 (0x000071adc1738000)\n\tlibhipblaslt.so.1 => /opt/rocm/lib/libhipblaslt.so.1 (0x000071adb5200000)\n\tlibrocm_kpack.so.0 => /opt/rocm/lib/librocm_kpack.so.0 (0x000071adc10bb000)\n\tlibrocprofiler-register.so.0 => /opt/rocm/lib/librocprofiler-register.so.0 (0x000071adc0924000)\n\tlibamd_comgr.so.3 => /opt/rocm/lib/libamd_comgr.so.3 (0x000071adb4400000)\n\tlibhsa-runtime64.so.1 => /opt/rocm/lib/libhsa-runtime64.so.1 (0x000071adb3e00000)\n\tliborigami.so.1 => /opt/rocm/lib/liborigami.so.1 (0x000071adbc78c000)\n\tlibrocm_sysdeps_z.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1 (0x000071adc1718000)\n\tlibrocroller.so.1 => /opt/rocm/lib/librocroller.so.1 (0x000071adaae00000)\n\tlibrocm_sysdeps_zstd.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1 (0x000071adb5931000)\n\tlibclang-cpp.so.23.0git => /opt/rocm/lib/llvm/lib/libclang-cpp.so.23.0git (0x000071ada6600000)\n\tlibLLVM.so.23.0git => /opt/rocm/lib/llvm/lib/libLLVM.so.23.0git (0x000071ad9f600000)\n\tlibrocm_sysdeps_elf.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1 (0x000071adc109f000)\n\tlibrocm_sysdeps_drm.so.2 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2 (0x000071adc108a000)\n\tlibrocm_sysdeps_drm_amdgpu.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1 (0x000071adc0c32000)\n\tlibrocm_sysdeps_numa.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1 (0x000071adc0c23000)\n\tlibrocm_sysdeps_liblzma.so.5 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5 (0x000071adc08f3000)\n\tlibrocm_sysdeps_bz2.so => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so (0x000071adc08da000)\n", + "stderr": "" + }, + "fake_benchmark_compile_argv": [ + "/usr/bin/c++", + "-std=c++17", + "-O2", + "-Wall", + "-Wextra", + "-Werror", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench.cpp", + "-o", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/fake_native_bench" + ], + "check_expectations": { + "tokenization-check.json": "TOKENIZED_ONLY; prompt counts [183,174]", + "llama-adapter-build.exit": "0", + "llama-input-error-check.json": "ERROR input_validation; noninteger prompt refused before backend initialization", + "monitor-cpu-check.jsonl": "COMPLETE; process RSS/PSS sampled using synthetic GPU sysfs files", + "monitor-timeout-check.jsonl": "TIMEOUT; own CPU child removed; monitor exit 124", + "monitor-docker-cpu-check.jsonl": "COMPLETE; actual container host PID distinct from CLI PID; no devices exposed", + "native-ab-cpu-check/summary.json": "COMPLETE; six same-output CPU processes in fixed order", + "native-ab-mismatch-check/summary.json": "TOKEN_MISMATCH; off-arm mutation detected; exit 1", + "native-ab-busy-check/summary.json": "ERROR; synthetic busy=3 rejected before any process launch; exit 1", + "native-ab-oracle-mismatch-check/summary.json": "TOKEN_MISMATCH; same-binary PASS and numeric ratios retained; cross-oracle FAIL; exit 1", + "aggregate-cpu-check.json": "COMPLETE; independent expected duration 10s, 8 requests, 1428 inputs, 128 outputs, 142.8 input tok/s and 12.8 output tok/s", + "native-trace-on-preparation/recipe-and-result.json": "PREPARED; exact rocprofv3 on argv; no GPU workload launched", + "native-trace-off-preparation/recipe-and-result.json": "PREPARED; exact rocprofv3 off argv; no GPU workload launched" + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-aggregate_oracle_captures.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-aggregate_oracle_captures.py new file mode 100644 index 000000000..e3f21b753 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-aggregate_oracle_captures.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +"""Aggregate the four retained two-request capture legs without rerunning inference.""" +from __future__ import annotations + +import argparse +import hashlib +import importlib.util +import json +from pathlib import Path +import statistics +import sys +import traceback + +PREP = Path('/home/vikash/oracle/rdna3-wmma-latest') + + +def digest(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def load_capture(path): + data = json.loads(path.read_text()) + if data.get('status') != 'COMPLETE' or len(data.get('legs', [])) != 4: + raise ValueError(f'capture is not complete with four legs: {path}') + return data + + +def primary_aggregate(data, helper): + rows = [row for leg in data['legs'] for row in leg['raw_closed_loop_records']] + prompts = [ids for leg in data['legs'] for ids in leg['prompt_token_ids']] + duration = sum(leg['metrics']['duration_s'] for leg in data['legs']) + if len(rows) != 8 or sum(map(len, prompts)) != 1428: + raise ValueError('primary capture must contain eight requests and 1428 input tokens') + metrics, ids = helper.derive_metrics(rows, prompts, duration, output_len=16, + max_concurrency=1, async_scheduling='default') + return {'metrics': metrics, 'generated_token_ids': ids, + 'original_legs': data['legs'], + 'duration_scope': 'sum of four closed-loop leg durations; excludes model initialization and inter-leg memory RPCs', + 'initialization_seconds': data['engine_initialization_seconds'], + 'cold_label_limit': 'first captured request leg after normal engine initialization and its built-in warmup; inspect JIT-cache history'} + + +def llama_aggregate(data, helper): + rows = [row for leg in data['legs'] for row in leg['requests']] + prompts = [row['prompt_token_ids'] for row in rows] + ids = [row['generated_token_ids'] for row in rows] + if len(rows) != 8 or sum(map(len, prompts)) != 1428 or any(len(row) != 16 for row in ids): + raise ValueError('llama capture must contain eight requests, 1428 input tokens, and 128 generated tokens') + duration = sum(leg['capture_leg_elapsed_seconds'] for leg in data['legs']) + ttfts = [row['client_ttft_ms_including_capture'] for row in rows] + e2es = [row['client_e2e_ms_including_capture'] for row in rows] + tpots = [(end - first) / 15 for end, first in zip(e2es, ttfts)] + itls = [right - left for row in rows + for left, right in zip(row['token_emit_elapsed_ms'], row['token_emit_elapsed_ms'][1:])] + metrics = {'duration_s': duration, 'successful_requests': 8, 'maximum_request_concurrency': 1, + 'input_tokens': 1428, 'output_tokens': 128, 'request_throughput': 8 / duration, + 'input_token_throughput': 1428 / duration, 'output_token_throughput': 128 / duration, + 'total_token_throughput': 1556 / duration, + 'ttft_ms': helper.summarize(ttfts), 'tpot_ms': helper.summarize(tpots), + 'e2el_ms': helper.summarize(e2es), 'itl_ms': helper.summarize(itls), + 'mean_per_stream_decode_rate': 1000 / statistics.fmean(tpots)} + prefill_seconds = sum(row['prefill_decode_call_ms'] for row in rows) / 1000 + decode_seconds = sum(row['decode_call_ms'] for row in rows) / 1000 + return {'metrics_including_capture': metrics, 'generated_token_ids': ids, + 'original_legs': data['legs'], + 'decode_call_only_metrics': {'prefill_seconds': prefill_seconds, 'decode_seconds': decode_seconds, + 'prefill_tokens_per_second': 1428 / prefill_seconds, + 'decode_tokens_per_second': 120 / decode_seconds}, + 'duration_scope': 'sum of four capture-leg durations, including memory clear, finite checks, logits copies, and request memory probes; excludes logit file writes and inter-leg work', + 'initialization_seconds': data['model_and_context_initialization_seconds'], + 'comparison_limit': 'whole-workload request/token counts match; client timing includes additional llama correctness instrumentation and is not an equal-overhead latency denominator'} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--primary', type=Path) + parser.add_argument('--llama', type=Path) + parser.add_argument('--output', type=Path, required=True) + parser.add_argument('--metrics-helper', type=Path, + default=Path('/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py')) + args = parser.parse_args() + if not args.primary and not args.llama: + parser.error('provide at least one completed capture') + if args.output.exists(): + parser.error('refusing to overwrite existing aggregate evidence') + report = {'status': 'RUNNING', 'argv': sys.argv, + 'adapter_sha256': digest(Path(__file__)), 'inputs': {}} + try: + spec = importlib.util.spec_from_file_location('closed_loop_metrics', args.metrics_helper) + helper = importlib.util.module_from_spec(spec) + spec.loader.exec_module(helper) + report['metrics_helper'] = {'path': str(args.metrics_helper), 'sha256': digest(args.metrics_helper)} + for kind, path, aggregate in (('primary', args.primary, primary_aggregate), + ('llama', args.llama, llama_aggregate)): + if path: + report['inputs'][kind] = {'path': str(path), 'sha256': digest(path)} + report[kind] = aggregate(load_capture(path), helper) + if args.primary and args.llama: + report['primary_llama_output_ids_exact'] = (report['primary']['generated_token_ids'] == + report['llama']['generated_token_ids']) + mismatch = report.get('primary_llama_output_ids_exact') is False + report['status'] = 'TOKEN_MISMATCH' if mismatch else 'COMPLETE' + result = 1 if mismatch else 0 + except Exception as exc: + report.update(status='ERROR', error=str(exc), error_type=type(exc).__name__, traceback=traceback.format_exc()) + result = 1 + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(report, indent=2, allow_nan=False) + '\n') + print(json.dumps({'status': report['status'], 'output': str(args.output)})) + return result + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-build_llama_adapter.sh b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-build_llama_adapter.sh new file mode 100644 index 000000000..9973fd235 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-build_llama_adapter.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail +prep=/home/vikash/oracle/rdna3-wmma-latest +/opt/rocm/llvm/bin/clang++ -std=c++17 -O2 -Wall -Wextra -Werror \ + -I"$prep/llama-source/include" -I"$prep/llama-source/ggml/include" \ + -I"$prep/llama-source/vendor" "$prep/adapters/capture_llama.cpp" \ + -L"$prep/llama-build/bin" -Wl,-rpath,"$prep/llama-build/bin" \ + -lllama -lggml -lggml-base -lcrypto -pthread \ + -o "$prep/adapters/capture_llama" diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_llama.cpp.txt b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_llama.cpp.txt new file mode 100644 index 000000000..82c4aa9b9 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_llama.cpp.txt @@ -0,0 +1,317 @@ +// Scratch measurement adapter for llama.cpp 093a2f86c3e37c54fa3e1f9efb17b304f3433abd. +// Calls public llama.h APIs. It does not change upstream sampling or model code. +#include "llama.h" +#include "nlohmann/json.hpp" +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using Json = nlohmann::json; +using Clock = std::chrono::steady_clock; +namespace fs = std::filesystem; +constexpr int kOutputTokens = 16; +constexpr int kLegs = 4; +constexpr const char * kSourceCommit = "093a2f86c3e37c54fa3e1f9efb17b304f3433abd"; +constexpr const char * kModelHash = "00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4"; + +static double Seconds(Clock::time_point start, Clock::time_point end = Clock::now()) { + return std::chrono::duration(end - start).count(); +} + +static std::string Sha256(const fs::path & path) { + std::ifstream stream(path, std::ios::binary); + if (!stream) throw std::runtime_error("cannot read " + path.string()); + std::unique_ptr ctx(EVP_MD_CTX_new(), EVP_MD_CTX_free); + if (!ctx || EVP_DigestInit_ex(ctx.get(), EVP_sha256(), nullptr) != 1) + throw std::runtime_error("SHA256 initialization failed"); + std::array buffer; + while (stream) { + stream.read(buffer.data(), buffer.size()); + if (stream.gcount() && EVP_DigestUpdate(ctx.get(), buffer.data(), stream.gcount()) != 1) + throw std::runtime_error("SHA256 update failed"); + } + if (!stream.eof()) throw std::runtime_error("incomplete read " + path.string()); + std::array digest; + unsigned int size = 0; + if (EVP_DigestFinal_ex(ctx.get(), digest.data(), &size) != 1) + throw std::runtime_error("SHA256 finalization failed"); + std::ostringstream result; + for (unsigned int i = 0; i < size; ++i) + result << std::hex << std::setw(2) << std::setfill('0') << static_cast(digest[i]); + return result.str(); +} + +static void WriteJson(const fs::path & path, const Json & data) { + if (!path.parent_path().empty()) fs::create_directories(path.parent_path()); + const fs::path temporary = path.string() + ".tmp"; + std::ofstream out(temporary); + out << data.dump(2) << '\n'; + out.close(); + if (!out) throw std::runtime_error("cannot write " + temporary.string()); + fs::rename(temporary, path); +} + +static Json Memory() { + struct rusage usage {}; + if (getrusage(RUSAGE_SELF, &usage) != 0) throw std::runtime_error("getrusage failed"); + Json devices = Json::array(); + for (size_t index = 0; index < ggml_backend_dev_count(); ++index) { + auto device = ggml_backend_dev_get(index); + const auto type = ggml_backend_dev_type(device); + if (type != GGML_BACKEND_DEVICE_TYPE_GPU && type != GGML_BACKEND_DEVICE_TYPE_IGPU) continue; + size_t free = 0, total = 0; + ggml_backend_dev_memory(device, &free, &total); + devices.push_back({{"name", ggml_backend_dev_name(device)}, + {"description", ggml_backend_dev_description(device)}, + {"free_bytes", free}, {"total_bytes", total}, + {"used_bytes", total >= free ? Json(total - free) : Json(nullptr)}}); + } + return {{"process_peak_rss_bytes", uint64_t(usage.ru_maxrss) * 1024}, + {"devices", devices}, + {"device_scope", "whole-device snapshots; not process allocation or a measured peak"}, + {"process_gpu_allocation_bytes", nullptr}, + {"gpu_memory_omission", "no per-context allocation breakdown is exposed by public llama.h"}}; +} + +static std::vector> ReadPrompts(const fs::path & path) { + std::ifstream input(path); + if (!input) throw std::runtime_error("cannot open prompt IDs JSON"); + Json data; + input >> data; + if (data.is_object()) { + if (data.contains("output_len") && data.at("output_len") != kOutputTokens) + throw std::runtime_error("prompt file output_len must be 16"); + data = data.at("prompt_token_ids"); + } + if (!data.is_array() || data.size() != 2) throw std::runtime_error("expected exactly two prompt ID arrays"); + std::vector> prompts; + size_t total = 0; + for (const auto & row : data) { + if (!row.is_array() || row.empty() || row.size() > 512 || row.size() + kOutputTokens > 2048) + throw std::runtime_error("invalid prompt length for the fixed 512-token batch and 2048 context"); + std::vector tokens; + for (const auto & value : row) { + if (!value.is_number_integer()) throw std::runtime_error("prompt token must be an integer"); + const int64_t token = value.get(); + if (token < 0 || token > INT32_MAX) throw std::runtime_error("prompt token outside int32 range"); + tokens.push_back(static_cast(token)); + } + total += tokens.size(); + prompts.push_back(std::move(tokens)); + } + if (total != 357) throw std::runtime_error("the two recorded prompts must total 357 tokens"); + return prompts; +} + +struct RequestCapture { + Json record; + std::vector logits; +}; + +static RequestCapture RunRequest(llama_context * context, llama_sampler * sampler, + const llama_vocab * vocabulary, std::vector prompt, + size_t index) { + const int32_t vocab_size = llama_vocab_n_tokens(vocabulary); + for (const auto token : prompt) + if (token >= vocab_size) throw std::runtime_error("prompt ID exceeds the loaded vocabulary"); + llama_synchronize(context); + const auto clear_start = Clock::now(); + llama_memory_clear(llama_get_memory(context), true); + llama_sampler_reset(sampler); + llama_synchronize(context); + const double clear_seconds = Seconds(clear_start); + if (llama_memory_seq_pos_max(llama_get_memory(context), 0) >= 0) + throw std::runtime_error("sequence state remains after full memory clear"); + RequestCapture output; + output.logits.reserve(size_t(kOutputTokens) * size_t(vocab_size)); + std::vector generated; + generated.reserve(kOutputTokens); + std::vector decode_ms, emit_ms; + Json selected_logits = Json::array(); + Json eog_flags = Json::array(); + auto batch = llama_batch_get_one(prompt.data(), static_cast(prompt.size())); + double capture_seconds = 0; + const auto request_start = Clock::now(); + for (int step = 0; step < kOutputTokens; ++step) { + const auto call_start = Clock::now(); + const int result = llama_decode(context, batch); + if (result != 0) throw std::runtime_error("llama_decode returned " + std::to_string(result)); + llama_synchronize(context); + decode_ms.push_back(Seconds(call_start) * 1000.0); + const float * logits = llama_get_logits_ith(context, -1); + if (!logits) throw std::runtime_error("llama_decode returned no final-token logits"); + const auto capture_start = Clock::now(); + for (int32_t token = 0; token < vocab_size; ++token) + if (!std::isfinite(logits[token])) throw std::runtime_error("nonfinite model logits"); + output.logits.insert(output.logits.end(), logits, logits + vocab_size); + capture_seconds += Seconds(capture_start); + // Greedy sampler alone: no EOG/EOS masking, penalties, grammar, or stop checks. + const llama_token token = llama_sampler_sample(sampler, context, -1); + if (token < 0 || token >= vocab_size) throw std::runtime_error("greedy token outside vocabulary"); + generated.push_back(token); + selected_logits.push_back(logits[token]); + eog_flags.push_back(llama_vocab_is_eog(vocabulary, token)); + emit_ms.push_back(Seconds(request_start) * 1000.0); + batch = llama_batch_get_one(&generated.back(), 1); + } + const double elapsed = Seconds(request_start); + const double decode_sum = std::accumulate(decode_ms.begin() + 1, decode_ms.end(), 0.0); + output.record = { + {"index", index}, {"prompt_token_ids", prompt}, {"generated_token_ids", generated}, + {"prompt_tokens", prompt.size()}, {"output_tokens", generated.size()}, + {"all_logits_finite", true}, {"selected_logits", selected_logits}, + {"generated_is_eog", eog_flags}, {"memory_clear_ms", clear_seconds * 1000.0}, + {"prefill_decode_call_ms", decode_ms.front()}, {"decode_call_ms", decode_sum}, + {"individual_decode_call_ms", decode_ms}, {"token_emit_elapsed_ms", emit_ms}, + {"client_ttft_ms_including_capture", emit_ms.front()}, + {"client_e2e_ms_including_capture", elapsed * 1000.0}, + {"logit_finite_check_and_copy_ms", capture_seconds * 1000.0}, + {"prefill_tokens_per_decode_call_second", prompt.size() * 1000.0 / decode_ms.front()}, + {"decode_tokens_per_decode_call_second", (kOutputTokens - 1) * 1000.0 / decode_sum}, + {"memory_after_request", Memory()} + }; + return output; +} + +int main(int argc, char ** argv) { + if (argc == 2 && std::string(argv[1]) == "--help") { + std::cout << "capture_llama MODEL_GGUF PROMPT_IDS_JSON OUTPUT_JSON\n" + "Fixed: 2 prompts, 357 input tokens, 16 generated tokens, 1 cold + 3 warm legs.\n"; + return 0; + } + Json report = {{"status", "RUNNING"}, {"phase", "arguments"}, {"legs", Json::array()}, + {"llama_source_commit", kSourceCommit}}; + fs::path output_path; + try { + if (argc != 4) throw std::runtime_error("usage: capture_llama MODEL_GGUF PROMPT_IDS_JSON OUTPUT_JSON"); + output_path = fs::absolute(argv[3]); + report["argv"] = std::vector(argv, argv + argc); + const fs::path model_path = fs::absolute(argv[1]); + const fs::path prompts_path = fs::absolute(argv[2]); + report["phase"] = "input_validation"; + auto prompts = ReadPrompts(prompts_path); + report["prompt_token_ids"] = prompts; + report["prompt_ids_file_sha256"] = Sha256(prompts_path); + report["adapter_binary_sha256"] = Sha256(fs::read_symlink("/proc/self/exe")); + report["model"] = {{"path", model_path.string()}, {"sha256", Sha256(model_path)}, + {"bytes", fs::file_size(model_path)}}; + if (report["model"]["sha256"] != kModelHash) throw std::runtime_error("retained model SHA256 mismatch"); + report["phase"] = "backend_initialization"; + WriteJson(output_path, report); + llama_backend_init(); + report["memory_before_load"] = Memory(); + if (report["memory_before_load"]["devices"].empty()) throw std::runtime_error("no GPU backend device available"); + auto model_params = llama_model_default_params(); + model_params.n_gpu_layers = 99; + const auto init_start = Clock::now(); + report["phase"] = "model_load"; + std::unique_ptr model( + llama_model_load_from_file(model_path.c_str(), model_params), llama_model_free); + if (!model) throw std::runtime_error("latest llama.cpp refused the retained model"); + auto params = llama_context_default_params(); + params.n_ctx = 2048; + params.n_batch = 512; + params.n_ubatch = 512; + params.n_seq_max = 1; + params.n_threads = 4; + params.n_threads_batch = 4; + params.type_k = GGML_TYPE_BF16; + params.type_v = GGML_TYPE_BF16; + report["requested_config"] = { + {"n_gpu_layers", 99}, {"n_ctx", 2048}, {"n_batch", 512}, {"n_ubatch", 512}, + {"n_seq_max", 1}, {"n_threads", 4}, {"n_threads_batch", 4}, + {"type_k", "bf16"}, {"type_v", "bf16"}, {"flash_attn_type", int(params.flash_attn_type)}, + {"n_rs_seq", params.n_rs_seq}, {"offload_kqv", params.offload_kqv}, + {"op_offload", params.op_offload}, {"kv_unified", params.kv_unified}, + {"sampling", "upstream greedy sampler only; exactly 16 tokens; no EOS/EOG masking or stopping"} + }; + report["phase"] = "context_initialization"; + std::unique_ptr context( + llama_init_from_model(model.get(), params), llama_free); + if (!context) throw std::runtime_error("latest llama.cpp refused the requested bf16 KV context; no fallback was attempted"); + llama_synchronize(context.get()); + report["model_and_context_initialization_seconds"] = Seconds(init_start); + report["resolved_config"] = { + {"n_ctx", llama_n_ctx(context.get())}, {"n_ctx_seq", llama_n_ctx_seq(context.get())}, + {"n_batch", llama_n_batch(context.get())}, {"n_ubatch", llama_n_ubatch(context.get())}, + {"n_seq_max", llama_n_seq_max(context.get())}, {"n_rs_seq", llama_n_rs_seq(context.get())}, + {"n_threads", llama_n_threads(context.get())}, {"n_threads_batch", llama_n_threads_batch(context.get())}, + {"vocab_size", llama_vocab_n_tokens(llama_model_get_vocab(model.get()))}, + {"model_tensor_bytes", llama_model_size(model.get())}, + {"system_info", llama_print_system_info()}, + {"resolved_gpu_layer_placement", "not exposed by public llama.h; inspect load log and runtime trace"}, + {"resolved_kv_types", "bf16 requested and context creation accepted; no public type getter"} + }; + report["timing_limits"] = { + "decode_call_ms measures llama_decode plus llama_synchronize; it excludes sampling and logit capture", + "client times include full-vocabulary finite checks and logits copies; they are not matched client latency claims", + "binary logit writes and SHA256 reads occur after each measured leg", + "state clear is outside request timings and reported separately; all recurrent/KV data is cleared per prompt", + "cold is the first captured workload after model/context initialization; standard llama backend graph behavior remains enabled", + "memory reports device-wide snapshots and process peak RSS; it does not claim a process GPU allocation or device peak" + }; + std::unique_ptr sampler(llama_sampler_init_greedy(), llama_sampler_free); + if (!sampler) throw std::runtime_error("cannot create upstream greedy sampler"); + const auto * vocab = llama_model_get_vocab(model.get()); + for (int leg = 0; leg < kLegs; ++leg) { + report["phase"] = "leg_" + std::to_string(leg); + const Json memory_before = Memory(); + std::vector captures; + const auto leg_start = Clock::now(); + for (size_t index = 0; index < prompts.size(); ++index) + captures.push_back(RunRequest(context.get(), sampler.get(), vocab, prompts[index], index)); + const double leg_elapsed = Seconds(leg_start); + Json rows = Json::array(); + for (size_t index = 0; index < captures.size(); ++index) { + auto & capture = captures[index]; + fs::path logits_path = output_path.string() + ".leg" + std::to_string(leg) + + ".prompt" + std::to_string(index) + ".logits-f32.bin"; + std::ofstream binary(logits_path, std::ios::binary); + binary.write(reinterpret_cast(capture.logits.data()), + std::streamsize(capture.logits.size() * sizeof(float))); + binary.close(); + if (!binary) throw std::runtime_error("cannot write captured logits"); + capture.record["logits"] = {{"path", logits_path.string()}, {"sha256", Sha256(logits_path)}, + {"dtype", "float32"}, {"byte_order", "little-endian"}, + {"shape", {kOutputTokens, llama_vocab_n_tokens(vocab)}}, + {"bytes", capture.logits.size() * sizeof(float)}}; + rows.push_back(std::move(capture.record)); + } + report["legs"].push_back({{"leg_index", leg}, {"kind", leg == 0 ? "cold" : "warm"}, + {"capture_leg_elapsed_seconds", leg_elapsed}, {"requests", rows}, + {"memory_before", memory_before}, {"memory_after", Memory()}}); + WriteJson(output_path, report); + } + report["status"] = "COMPLETE"; + report["phase"] = "complete"; + report["single_model_load"] = true; + report["gpu_executed"] = true; + WriteJson(output_path, report); + std::cout << Json({{"status", "COMPLETE"}, {"output", output_path.string()}, {"captured_legs", kLegs}}) << '\n'; + return 0; + } catch (const std::exception & error) { + report["status"] = "ERROR"; + report["error"] = error.what(); + if (!output_path.empty()) { + try { WriteJson(output_path, report); } + catch (const std::exception & write_error) { report["output_write_error"] = write_error.what(); } + } + std::cerr << report.dump() << '\n'; + return 1; + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_primary.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_primary.py new file mode 100644 index 000000000..c9b03eef6 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-capture_primary.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +"""Capture the specified Qwen3.5 GGUF workload with the latest Python engine.""" +from __future__ import annotations + +import argparse +import dataclasses +import enum +import hashlib +import importlib.util +import json +import math +import os +from pathlib import Path +import sys +import time +import traceback +from collections.abc import Mapping + +PREP = Path('/home/vikash/oracle/rdna3-wmma-latest') +MODEL_SHA256 = '00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4' +OUTPUT_LEN = 16 + + +def sha256(path): + digest = hashlib.sha256() + with Path(path).open('rb') as stream: + for chunk in iter(lambda: stream.read(8 * 1024 * 1024), b''): + digest.update(chunk) + return digest.hexdigest() + + +def jsonable(value): + if value is None or isinstance(value, (str, int, bool)): + return value + if isinstance(value, float): + return value if math.isfinite(value) else str(value) + if isinstance(value, enum.Enum): + return {'name': value.name, 'value': jsonable(value.value)} + if isinstance(value, Path): + return str(value) + if isinstance(value, Mapping): + return {str(k): jsonable(v) for k, v in value.items()} + if isinstance(value, (tuple, list, set)): + return [jsonable(v) for v in value] + if dataclasses.is_dataclass(value) and not isinstance(value, type): + return {f.name: jsonable(getattr(value, f.name)) for f in dataclasses.fields(value)} + if hasattr(value, '__struct_fields__'): + return {key: jsonable(getattr(value, key)) for key in value.__struct_fields__} + if hasattr(value, 'to_dict'): + return jsonable(value.to_dict()) + return repr(value) + + +def write_json(path, value): + path = Path(path) + path.parent.mkdir(parents=True, exist_ok=True) + temporary = path.with_name(path.name + '.tmp') + temporary.write_text(json.dumps(jsonable(value), indent=2, allow_nan=False) + '\n') + temporary.replace(path) + + +def worker_memory(self, reset_peak=False): + """Public collective_rpc callable; executes inside each actual model worker.""" + import os + import resource + import torch + torch.cuda.synchronize() + if reset_peak: + torch.cuda.reset_peak_memory_stats() + free, total = torch.cuda.mem_get_info() + return { + 'pid': os.getpid(), + 'device_index': torch.cuda.current_device(), + 'device_name': torch.cuda.get_device_name(), + 'allocated_bytes': torch.cuda.memory_allocated(), + 'reserved_bytes': torch.cuda.memory_reserved(), + 'peak_allocated_bytes': torch.cuda.max_memory_allocated(), + 'peak_reserved_bytes': torch.cuda.max_memory_reserved(), + 'device_free_bytes': free, + 'device_total_bytes': total, + 'process_peak_rss_bytes': resource.getrusage(resource.RUSAGE_SELF).ru_maxrss * 1024, + 'device_scope': 'whole device, including other processes', + 'allocator_scope': 'this model worker only', + } + + +def load_metrics_module(path): + spec = importlib.util.spec_from_file_location('wmma_closed_loop_metrics', path) + if spec is None or spec.loader is None: + raise RuntimeError(f'cannot import metrics helper: {path}') + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--output', type=Path, required=True) + parser.add_argument('--prompt-ids-output', type=Path) + parser.add_argument('--flat-dir', type=Path, default=PREP / 'qwen35-4b-text') + parser.add_argument('--metrics-helper', type=Path, + default=Path('/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py')) + parser.add_argument('--tokenize-only', action='store_true', + help='validate metadata and emit prompt IDs without loading the model or using a GPU') + args = parser.parse_args() + report = {'status': 'RUNNING', 'phase': 'inputs', 'argv': sys.argv, + 'adapter_sha256': sha256(__file__), 'legs': []} + try: + helper = load_metrics_module(args.metrics_helper) + flat = args.flat_dir.absolute() + config = json.loads((flat / 'config.json').read_text()) + if config['rope_parameters']['partial_rotary_factor'] != 0.25: + raise ValueError('the retained partial_rotary_factor must equal 0.25') + texts = helper.load_prompt_text(flat / 'workload.json', 2) + from transformers import AutoTokenizer + tokenizer = AutoTokenizer.from_pretrained(flat, local_files_only=True) + prompt_ids = [tokenizer.encode(text) for text in texts] + if len(prompt_ids) != 2 or sum(map(len, prompt_ids)) != 357: + raise ValueError(f'expected two prompts totaling 357 tokens, got {list(map(len, prompt_ids))}') + if any(not ids or len(ids) + OUTPUT_LEN > 2048 for ids in prompt_ids): + raise ValueError('prompt exceeds the requested context') + report.update({ + 'input_files': {str(flat / name): sha256(flat / name) + for name in ('config.json', 'tokenizer.json', 'tokenizer_config.json', 'workload.json')}, + 'metrics_helper': {'path': str(args.metrics_helper), 'sha256': sha256(args.metrics_helper)}, + 'prompt_texts': texts, + 'prompt_token_ids': prompt_ids, + 'prompt_token_counts': list(map(len, prompt_ids)), + 'tokenization': 'raw tokenizer.encode(text), no chat template and no manually inserted tokens', + 'config_adaptation': { + 'upstream': 'Qwen/Qwen3.5-4B@851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a', + 'flat_text_config': config, + 'reason': 'retained GGUF contains the text model only', + 'model_class_overrides': { + 'Qwen3_5ForConditionalGeneration': 'vllm.model_executor.models.qwen3_5:Qwen3_5ForCausalLM'}, + }, + }) + ids_path = args.prompt_ids_output or args.output.with_suffix('.prompt-ids.json') + write_json(ids_path, {'prompt_token_ids': prompt_ids, 'output_len': OUTPUT_LEN, + 'prompt_token_counts': list(map(len, prompt_ids)), + 'tokenization': report['tokenization'], + 'config_sha256': report['input_files'][str(flat / 'config.json')]}) + report['prompt_ids_output'] = str(ids_path) + if args.tokenize_only: + report.update(status='TOKENIZED_ONLY', phase='complete', gpu_executed=False) + write_json(args.output, report) + print(json.dumps({'status': report['status'], 'output': str(args.output), + 'prompt_token_counts': report['prompt_token_counts']})) + return 0 + + report['phase'] = 'verify_weights' + model = flat / 'model.gguf' + actual_model_hash = sha256(model) + report['model'] = {'path': str(model), 'resolved_path': str(model.resolve()), + 'bytes': model.stat().st_size, 'sha256': actual_model_hash} + if actual_model_hash != MODEL_SHA256: + raise ValueError('retained model SHA256 does not match the committed experiment') + from vllm import LLM, SamplingParams, TokensPrompt + import importlib.metadata + import vllm + if vllm.__version__ != '0.28.1rc1.dev812+g39545e475': + raise RuntimeError(f'wrong vLLM runtime: {vllm.__version__} from {vllm.__file__}') + report['versions'] = {name: importlib.metadata.version(name) + for name in ('vllm', 'vllm-gguf-plugin', 'torch', 'triton', 'gguf', 'transformers')} + llm_args = { + 'model': str(model), 'hf_config_path': str(flat), 'tokenizer': str(flat), + 'config_format': 'gguf', 'load_format': 'gguf', 'quantization': 'gguf', + 'model_class_overrides': report['config_adaptation']['model_class_overrides'], + 'dtype': 'auto', 'max_model_len': 2048, 'max_num_seqs': 1, + 'max_num_batched_tokens': 512, 'block_size': 32, + 'enable_prefix_caching': False, 'generation_config': 'vllm', + 'seed': 0, 'disable_log_stats': False, + } + report['requested_engine_arguments'] = llm_args + report['production_defaults'] = { + 'compilation': 'unmodified upstream default', + 'cuda_graphs': 'unmodified upstream default', + 'enforce_eager': 'argument omitted', + 'async_scheduling': 'argument omitted', + 'gpu_memory_utilization': 'argument omitted; inspect resolved configuration', + 'cold_leg': 'first captured request leg after normal engine initialization and its built-in warmup', + 'memory': 'resolved hybrid cache allocation is retained; no comparison to native block counts is inferred', + } + write_json(args.output, report) + report['phase'] = 'engine_initialization' + start = time.perf_counter() + llm = LLM(**llm_args) + report['engine_initialization_seconds'] = time.perf_counter() - start + actual_ids = [llm.get_tokenizer().encode(text) for text in texts] + if actual_ids != prompt_ids: + raise RuntimeError('loaded engine tokenizer differs from exported prompt IDs') + report['resolved_config'] = jsonable(llm.llm_engine.vllm_config) + sampling = SamplingParams( + seed=0, temperature=0.0, top_p=1.0, top_k=-1, min_p=0.0, + presence_penalty=0.0, frequency_penalty=0.0, repetition_penalty=1.0, + max_tokens=OUTPUT_LEN, min_tokens=0, ignore_eos=True, + detokenize=False, stop=None, stop_token_ids=None, + ) + report['resolved_sampling_params'] = jsonable(sampling) + prompts = [TokensPrompt(prompt_token_ids=ids) for ids in prompt_ids] + for leg_index in range(4): + report['phase'] = f'leg_{leg_index}' + before = llm.collective_rpc(worker_memory, args=(True,)) + duration, records = helper.run_closed_loop(llm, prompts, sampling, 1, 1000 * leg_index) + after = llm.collective_rpc(worker_memory, args=(False,)) + metrics, ids = helper.derive_metrics( + records, prompt_ids, duration, output_len=OUTPUT_LEN, + max_concurrency=1, async_scheduling='default') + report['legs'].append({ + 'leg_index': leg_index, 'kind': 'cold' if leg_index == 0 else 'warm', + 'metrics': metrics, 'prompt_token_ids': prompt_ids, + 'generated_token_ids': ids, 'raw_closed_loop_records': records, + 'memory_before_reset_peak': before, 'memory_after': after, + }) + write_json(args.output, report) + report.update(status='COMPLETE', phase='complete', gpu_executed=True, + single_model_load=True, captured_legs=4) + write_json(args.output, report) + print(json.dumps({'status': report['status'], 'output': str(args.output), + 'captured_legs': len(report['legs'])})) + return 0 + except Exception as exc: + report.update(status='ERROR', error_type=type(exc).__name__, error=str(exc), + traceback=traceback.format_exc()) + write_json(args.output, report) + print(json.dumps({'status': 'ERROR', 'phase': report['phase'], + 'error': str(exc), 'output': str(args.output)}), file=sys.stderr) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-closed_loop_metrics.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-closed_loop_metrics.py new file mode 100644 index 000000000..02ae5c1ca --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-closed_loop_metrics.py @@ -0,0 +1,290 @@ +#!/usr/bin/env python3 +"""Run an exact closed-loop vLLM workload with client-observed metrics. + +This is the reference-side companion to ``examples/bench/bench_core.h``. It +uses the same bounded in-flight admission, DELTA outputs, fixed token count and +numpy-style percentile reduction, while retaining generated IDs for the +correctness precondition. +""" + +from __future__ import annotations + +import argparse +import copy +import json +import math +import pathlib +import statistics +import time +from typing import Any + + +def percentile(values: list[float], p: float) -> float: + ordered = sorted(values) + if not ordered: + return 0.0 + if len(ordered) == 1: + return ordered[0] + rank = p / 100.0 * (len(ordered) - 1) + lo = math.floor(rank) + hi = math.ceil(rank) + return ordered[lo] + (ordered[hi] - ordered[lo]) * (rank - lo) + + +def summarize(values: list[float]) -> dict[str, float]: + return { + "mean": statistics.fmean(values) if values else 0.0, + "median": percentile(values, 50), + "p99": percentile(values, 99), + } + + +def load_prompt_text(path: pathlib.Path, count: int) -> list[str]: + rows = json.loads(path.read_text(encoding="utf-8")) + prompts: list[str] = [] + for row in rows: + conversations = row.get("conversations") + if not isinstance(conversations, list) or not conversations: + continue + value = conversations[0].get("value") + if isinstance(value, str): + prompts.append(value) + if len(prompts) == count: + break + if len(prompts) != count: + raise ValueError(f"dataset has {len(prompts)} valid prompts; need {count}") + return prompts + + +def run_closed_loop(llm, prompts, sampling, concurrency: int, request_id_base: int): + from vllm.sampling_params import RequestOutputKind + + if concurrency <= 0 or concurrency > len(prompts): + raise ValueError("concurrency must be in [1, num-prompts]") + engine = llm.llm_engine + records: dict[int, dict[str, Any]] = {} + next_index = 0 + completed = 0 + started = time.perf_counter() + + def submit(index: int) -> None: + params = copy.copy(sampling) + params.output_kind = RequestOutputKind.DELTA + records[index] = { + "arrival_s": time.perf_counter(), + "first_token_s": None, + "last_token_s": None, + "completion_s": None, + "itls_s": [], + "output_token_ids": [], + "core_ttft_s": None, + } + engine.add_request(str(request_id_base + index), prompts[index], params) + + while next_index < min(concurrency, len(prompts)): + submit(next_index) + next_index += 1 + + while engine.has_unfinished_requests(): + for output in engine.step(): + index = int(output.request_id) - request_id_base + if index not in records: + raise RuntimeError(f"unexpected request id: {output.request_id}") + record = records[index] + if output.outputs and output.outputs[0].token_ids: + now = time.perf_counter() + if record["first_token_s"] is None: + record["first_token_s"] = now + else: + record["itls_s"].append(now - record["last_token_s"]) + record["last_token_s"] = now + record["output_token_ids"].extend(output.outputs[0].token_ids) + if output.finished and record["completion_s"] is None: + record["completion_s"] = time.perf_counter() + if output.metrics is not None: + record["core_ttft_s"] = output.metrics.first_token_latency + completed += 1 + + while next_index < len(prompts) and next_index - completed < concurrency: + submit(next_index) + next_index += 1 + + duration = time.perf_counter() - started + return duration, [records[index] for index in range(len(prompts))] + + +def require_every_request_returned(records, expected_requests: int) -> int: + """Refuse to divide by a wall duration that outlived some of its requests. + + `duration` spans the whole closed loop, so a request that never came back + still contributes seconds to every rate below while contributing no tokens + (#931). The gather above indexes by request id and would raise KeyError on + a gap, but a KeyError names nothing; this names the count. + """ + + if len(records) != expected_requests: + raise RuntimeError( + f"closed-loop request set is partial: {len(records)} of " + f"{expected_requests} requests returned; no rate may be derived" + ) + return len(records) + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--model", required=True) + parser.add_argument("--dataset-path", required=True, type=pathlib.Path) + parser.add_argument("--metrics-output", required=True, type=pathlib.Path) + parser.add_argument("--tokens-output", required=True, type=pathlib.Path) + parser.add_argument("--num-prompts", type=int, default=128) + parser.add_argument("--output-len", type=int, default=128) + parser.add_argument("--max-concurrency", type=int, default=32) + parser.add_argument("--max-num-seqs", type=int, default=32) + parser.add_argument("--max-num-batched-tokens", type=int, default=2048) + parser.add_argument("--max-model-len", type=int, default=4096) + parser.add_argument("--gpu-memory-utilization", type=float, default=0.88) + parser.add_argument("--temperature", type=float, default=0.0) + parser.add_argument( + "--async-scheduling", choices=("default", "on", "off"), default="default" + ) + parser.add_argument("--enforce-eager", action="store_true") + parser.add_argument("--request-id-base", type=int, default=0) + args = parser.parse_args() + + from vllm import LLM, SamplingParams, TokensPrompt + + prompt_text = load_prompt_text(args.dataset_path, args.num_prompts) + scheduler_override: dict[str, bool] = {} + if args.async_scheduling != "default": + scheduler_override["async_scheduling"] = args.async_scheduling == "on" + llm = LLM( + model=args.model, + dtype="bfloat16", + max_model_len=args.max_model_len, + max_num_seqs=args.max_num_seqs, + max_num_batched_tokens=args.max_num_batched_tokens, + gpu_memory_utilization=args.gpu_memory_utilization, + enable_prefix_caching=False, + seed=0, + disable_log_stats=False, + enforce_eager=args.enforce_eager, + **scheduler_override, + ) + tokenizer = llm.get_tokenizer() + prompt_ids = [tokenizer.encode(text) for text in prompt_text] + prompts = [TokensPrompt(prompt_token_ids=ids) for ids in prompt_ids] + sampling = SamplingParams( + temperature=args.temperature, + max_tokens=args.output_len, + min_tokens=args.output_len, + ignore_eos=True, + detokenize=False, + ) + duration, records = run_closed_loop( + llm, prompts, sampling, args.max_concurrency, args.request_id_base + ) + result, token_ids = derive_metrics( + records, + prompt_ids, + duration, + output_len=args.output_len, + max_concurrency=args.max_concurrency, + async_scheduling=args.async_scheduling, + ) + args.metrics_output.write_text( + json.dumps(result, indent=2) + "\n", encoding="utf-8" + ) + args.tokens_output.write_text(json.dumps(token_ids) + "\n", encoding="utf-8") + print(json.dumps({key: value for key, value in result.items() if key != "requests"})) + return 0 + + +def derive_metrics( + records, + prompt_ids, + duration: float, + *, + output_len: int, + max_concurrency: int, + async_scheduling: str, +) -> tuple[dict, list[list[int]]]: + """Turn a closed-loop record set into rates, refusing a partial set first. + + Split out of `main` so the guard below sits on a call path a test can + reach. It used to be one statement inside `main`, whose body starts by + importing `vllm` and constructing an `LLM` -- so no test could execute it, + and deleting the guard left all 328 tool tests green while the tool went + back to dividing by a duration that outlived some of its requests (#931). + """ + + require_every_request_returned(records, len(prompt_ids)) + + request_rows = [] + all_itls_ms: list[float] = [] + token_ids: list[list[int]] = [] + for index, record in enumerate(records): + if record["first_token_s"] is None or record["completion_s"] is None: + raise RuntimeError(f"request {index} has incomplete timing") + ids = list(record["output_token_ids"]) + if len(ids) != output_len: + raise RuntimeError( + f"request {index} emitted {len(ids)} tokens; expected {output_len}" + ) + token_ids.append(ids) + ttft_ms = (record["first_token_s"] - record["arrival_s"]) * 1000.0 + e2el_ms = (record["completion_s"] - record["arrival_s"]) * 1000.0 + tpot_ms = (e2el_ms - ttft_ms) / (len(ids) - 1) + itls_ms = [value * 1000.0 for value in record["itls_s"]] + all_itls_ms.extend(itls_ms) + request_rows.append( + { + "index": index, + "prompt_tokens": len(prompt_ids[index]), + "output_tokens": len(ids), + "ttft_ms": ttft_ms, + "core_ttft_ms": ( + record["core_ttft_s"] * 1000.0 + if record["core_ttft_s"] is not None + else None + ), + "tpot_ms": tpot_ms, + "e2el_ms": e2el_ms, + "itls_ms": itls_ms, + } + ) + + ttft_ms = [row["ttft_ms"] for row in request_rows] + core_ttft_ms = [ + row["core_ttft_ms"] + for row in request_rows + if row["core_ttft_ms"] is not None + ] + tpot_ms = [row["tpot_ms"] for row in request_rows] + e2el_ms = [row["e2el_ms"] for row in request_rows] + input_tokens = sum(map(len, prompt_ids)) + output_tokens = sum(map(len, token_ids)) + result = { + "admission": "closed_loop_delta_client_observed", + "async_scheduling_requested": async_scheduling, + "duration_s": duration, + "successful_requests": len(records), + "maximum_request_concurrency": max_concurrency, + "input_tokens": input_tokens, + "output_tokens": output_tokens, + "request_throughput": len(records) / duration, + "input_token_throughput": input_tokens / duration, + "output_token_throughput": output_tokens / duration, + "total_token_throughput": (input_tokens + output_tokens) / duration, + "mean_per_stream_decode_rate": 1000.0 / statistics.fmean(tpot_ms), + "ttft_ms": summarize(ttft_ms), + "core_ttft_ms": summarize(core_ttft_ms), + "tpot_ms": summarize(tpot_ms), + "itl_ms": summarize(all_itls_ms), + "e2el_ms": summarize(e2el_ms), + "requests": request_rows, + } + return result, token_ids + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-HANDOFF.md b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-HANDOFF.md new file mode 100644 index 000000000..8aa0aeecb --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-HANDOFF.md @@ -0,0 +1,93 @@ +Measurement adapter preparation is COMPLETE. All files are external scratch artifacts under `/home/vikash/oracle/rdna3-wmma-latest`; no product or upstream model/kernel source was changed. The coordinating task owns GPU execution and `/home/vikash/gpu.lock`. These preparation checks do not establish model token parity or a performance floor. + +The source/binary and completed check hashes are sealed in [adapter-manifest.json](/home/vikash/oracle/rdna3-wmma-latest/adapters/adapter-manifest.json). Earlier build and import evidence remains in [build-provenance.json](/home/vikash/oracle/rdna3-wmma-latest/logs/build-provenance.json), [import-provenance.json](/home/vikash/oracle/rdna3-wmma-latest/logs/import-provenance.json), and [the oracle build handoff](/home/vikash/oracle/rdna3-wmma-latest/logs/HANDOFF.md). + +The clean upstream source revisions are vLLM `39545e475d3627287ff69c25465dc0bd405f67e1`, llama.cpp `093a2f86c3e37c54fa3e1f9efb17b304f3433abd`, and the GGUF plugin `d4c1f0d082fc7cd4350da56689109a01c1f29d6c`. The committed experiment spec is `a5b5c92`. The retained GGUF SHA256 is `00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4`. + +**Primary capture and retry.** [capture_primary.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py) exports exact raw `tokenizer.encode` IDs, checks the retained GGUF hash, uses latest vLLM with explicit GGUF config/load/quantization and the supported text-model class override, and retains the resolved engine configuration. Metadata comes from `Qwen/Qwen3.5-4B@851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`; the flat text config preserves `partial_rotary_factor=0.25`. The two raw prompts encode to 183 and 174 tokens. No chat template or tokenizer-regex repair is applied. + +The requested configuration is dtype auto, max length 2048, one sequence, max batched tokens 512, block size 32, prefix caching disabled, generation config vLLM, and upstream production compilation/graph defaults. Greedy sampling uses seed 0, temperature 0, 16 output tokens, `min_tokens=0`, `ignore_eos=True`, and neutral penalties. Four legs run after one engine load: the first captured leg and three later legs. Worker Torch allocator peaks are reset before each leg. The field named `memory_before_reset_peak` contains the snapshot **after** resetting the peak counter. Device free/total readings have whole-device scope; the allocator readings belong to the actual model worker. + +The coordinator's first invocation initialized the model and production graphs in 348.582 seconds, then failed at the first memory RPC because callable serialization was disabled. It did not generate tokens. Its unchanged [primary-model.json](/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model.json) has SHA256 `f152650d003011ab1bbb0155f40331a1839c466af0c4e5fc193b36705eade0ba`. The capture source stayed unchanged. The launchers now explicitly allow serialization for this trusted local callable inside the network-disabled container, set `XDG_CONFIG_HOME` under the task directory, and disable usage statistics. The first attempt warmed JIT caches; the retry's `cold` label denotes its first captured leg, not an empty JIT cache. + +While already holding the mutex, run: + +```sh +/home/vikash/oracle/rdna3-wmma-latest/adapters/retry_primary_under_lock.sh +``` + +This writes `primary-model-retry.json`, `prompt-ids-retry.json`, `primary-model-retry-monitor.jsonl`, and separate stdout/stderr logs. The bounded monitor uses the actual host PID of Docker container `rdna3-wmma-primary-retry`. Existing output files cause the monitor to refuse replacement. The full Docker argv, image identity, environment, and mounts are in [python-gpu-named-under-lock.sh](/home/vikash/oracle/rdna3-wmma-latest/adapters/python-gpu-named-under-lock.sh). Both task worktrees and `/home/vikash/models` are mounted; the source/model mounts are read-only. + +The coordinator subsequently completed the primary retry: four legs and 128 generated IDs, which it checked exactly against the scalar native two-prompt baseline repeated four times. Engine initialization took 154.137 seconds with normal production graphs. The completed generation report has SHA256 `caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040`. After the script wrote `COMPLETE`, the engine process persisted because the scratch adapter has no explicit shutdown. The coordinator owns termination of its `rdna3-wmma-primary-retry` container. Consequently, the process monitor may report `COMMAND_FAILED` during teardown even though the immutable generation report is complete. Treat generation completion and process teardown as separate evidence; do not rerun successful generation merely to obtain a clean teardown exit. The completed report and capture source remain unchanged. + +**Latest llama.cpp capture.** [capture_llama.cpp](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama.cpp) and [capture_llama](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama) use the latest public llama API and the isolated built shared libraries. The exact command is [build_llama_adapter.sh](/home/vikash/oracle/rdna3-wmma-latest/adapters/build_llama_adapter.sh); compilation with Clang, `-O2 -Wall -Wextra -Werror`, and one compiler process exited 0. The linked runtime resolves through the explicit task-library RPATH. No upstream source repairs were made. + +The adapter requests 99 GPU layers, context 2048, batch/ubatch 512, one sequence, four threads, and BF16 K/V. It rejects context creation failure without a dtype fallback. It clears all recurrent/KV memory and checks the empty sequence before every prompt. Each of four legs processes the same two prompt arrays. The upstream greedy sampler receives the complete vocabulary, with no EOS/EOG masking or stop checks, and emits exactly 16 tokens. Each request performs one prefill call and 15 later decode calls. Every logits row must be finite; all 16 full-vocabulary rows are retained as hashed float32 binary files. + +While already holding the mutex, run: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py \ + --output-jsonl /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model-monitor.jsonl \ + --interval-seconds 0.05 --timeout-seconds 600 \ + -- env HIP_VISIBLE_DEVICES=0 ROCR_VISIBLE_DEVICES=0 \ + /home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama \ + /home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/model.gguf \ + /home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids-retry.json \ + /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json +``` + +Logit file writing and hashing occur outside each measured leg. Client timing includes finite checks and full-vocabulary copies, so it is not an equal-overhead latency denominator. Separate decode-call timings contain `llama_decode` plus synchronization and exclude sampling/capture. Memory clear is reported separately. Public getters do not expose a per-context GPU allocation breakdown, final layer placement, or resolved K/V types: the report states these omissions and retains whole-device snapshots and process peak RSS. Load logs and matching traces remain necessary to establish the executing path. + +**Native same-binary A/B.** [run_native_ab.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py) runs six separate processes in `on1, off1, off2, on2, on3, off3` order. On unsets `VT_ROCM_QUANT_WMMA`; off sets it to `0`. Each process loads one model and runs eight requests: the original two dataset records repeated four times without text changes. The output directory retains the original and expanded dataset hashes and mapping `[0,1,0,1,0,1,0,1]`. Configuration is input-length bound 256, output length 16, concurrency 1, max batched tokens 512, 64 native blocks, temperature 0, seed 0, raw prompts, and EOS ignored. Native block count is not equated with vLLM's hybrid allocation. + +While already holding the mutex, run: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py \ + --output-dir /home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model \ + --primary-report /home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json \ + --llama-report /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json +``` + +The driver checks card1 `gpu_busy_percent <= 2` before each process and records CPU process/load snapshots. It hashes the executable, resolved ELF shared libraries, model/config/tokenizer inputs, and datasets, then checks identities at each boundary and hashes them again afterward. Missing shared libraries or changed inputs reject the run. Each process gets a 0.05-second monitor and separate output IDs/logs. The driver enforces eight requests, 1428 input tokens, and 128 generated tokens, compares every generated-ID row across all six processes, and compares completed oracle captures in four-leg order. Missing or incomplete oracles remain explicitly unavailable. + +`same_binary_output_gate` and `cross_oracle_output_gate` are separate. A shared mismatch against an oracle makes cross-oracle parity fail, while exact native A/B outputs still permit descriptive on/off medians and ratios. Any native arm/repeat mismatch suppresses those ratios. Native metrics aggregate all eight requests after one load; the external process duration includes startup, teardown, and monitor overhead. Its difference from benchmark duration is not a direct startup-latency measurement. No warm-only native result is inferred. + +**Whole-workload oracle aggregation.** After both captures complete, run: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate_oracle_captures.py \ + --primary /home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json \ + --llama /home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json \ + --output /home/vikash/oracle/rdna3-wmma-latest/adapters/oracle-whole-workload.json +``` + +This reuses the original primary metrics helper on all eight request records and the sum of the four leg durations. It aggregates llama's eight requests while labeling its additional capture overhead, retains each original cold/warm leg, and checks primary/llama IDs exactly. Matching request counts do not erase differences in instrumentation or timing windows. + +**Native rocprofv3 path traces.** The installed `/opt/rocm/bin/rocprofv3 --help` and `--version` were inspected without executing a GPU workload. [run_native_trace.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py) retains complete argv, tool/binary/dataset identities, profiler output configuration, and bounded monitor logs. It uses the same original two records repeated four times and the same native configuration as the unprofiled A/B. It collects unfiltered HIP API, kernel dispatch, memory-copy/allocation, and ROCTx traces in CSV and JSON, without hardware counters or ATT. `ROCPROF_TMPDIR` and `TMPDIR` point to writable task cache directories outside `/dev/shm`. + +While already holding the mutex, run these sequentially: + +```sh +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py \ + --arm on --output-dir /home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on +/home/vikash/.venv/bin/python /home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py \ + --arm off --output-dir /home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off +``` + +Each trace has a 600-second bound and its own output and temporary directories. Existing output directories are refused. The driver requires idle card1 before starting and retains exact generated IDs. Profiler timings carry tracing overhead; use unprofiled A/B for throughput. The prepared argv can be reviewed now in `native-trace-on-preparation/recipe-and-result.json` and `native-trace-off-preparation/recipe-and-result.json`; both were created with `--prepare-only` and did not launch a workload. + +The common [monitor_command.py](/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py) records boot ID, command argv, timestamps, process-tree RSS/PSS, host available memory, and card1 VRAM/busy/clock text. Device memory is whole-device; peak values are maxima of sampled observations. It never changes clocks. For Docker, pass `--docker-name` matching the command's unique `--name`; the monitor refuses an existing container and samples the container's actual host PID. Timeout cleanup only targets the process group and container started for that invocation. + +Preparation checks completed without executing a GPU workload: raw tokenization [183,174]; llama compile and help; malformed-token JSON rejection before backend initialization; monitor CPU process sampling; bounded timeout cleanup; Docker CPU host-PID sampling; six-process native CPU orchestration; deliberate off-arm token mismatch; busy-gate rejection before process launch; cross-oracle mismatch retaining exact same-binary ratios; aggregate arithmetic for eight requests/1428 inputs/128 outputs; Python AST and shell syntax checks. CPU fixtures and logs are retained and named as such. They are not model measurements. + +Source anchors for review: + +- Primary argument/sampling and worker memory adaptation: [capture_primary.py:62](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py:62), [capture_primary.py:165](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py:165), [capture_primary.py:193](/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py:193); repository metrics [run_closed_loop:59](/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py:59) and [derive_metrics:202](/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py:202). +- Latest model registration: [registry.py:204](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/model_executor/models/registry.py:204), [registry.py:597](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/model_executor/models/registry.py:597); plugin registration [plugin.py:130](/home/vikash/oracle/rdna3-wmma-latest/plugin-source/vllm_gguf_plugin/plugin.py:130), GGUF linear dispatch [linear.py:35](/home/vikash/oracle/rdna3-wmma-latest/plugin-source/vllm_gguf_plugin/quantization/linear.py:35), compiled MMQ entry [ops.py:200](/home/vikash/oracle/rdna3-wmma-latest/plugin-source/vllm_gguf_plugin/ops.py:200). +- Upstream min-token masking skips zero: [builtin.py:198](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/v1/sample/logits_processor/builtin.py:198). Trusted callable serialization is explicitly guarded at [serial_utils.py:221](/home/vikash/oracle/rdna3-wmma-latest/vllm-source/vllm/v1/serial_utils.py:221). +- Latest llama memory clear and synchronization: [llama.h:739](/home/vikash/oracle/rdna3-wmma-latest/llama-source/include/llama.h:739), [llama.h:1027](/home/vikash/oracle/rdna3-wmma-latest/llama-source/include/llama.h:1027). Full-vocabulary sampling and greedy tie policy: [llama-sampler.cpp:895](/home/vikash/oracle/rdna3-wmma-latest/llama-source/src/llama-sampler.cpp:895), [llama-sampler.cpp:1053](/home/vikash/oracle/rdna3-wmma-latest/llama-source/src/llama-sampler.cpp:1053). +- Native arguments [main.cpp:89](/home/vikash/vllm.cpp-rdna3-wmma/examples/bench/main.cpp:89), model/cache configuration [bench_core.h:723](/home/vikash/vllm.cpp-rdna3-wmma/examples/bench/bench_core.h:723), output IDs [bench_core.h:1005](/home/vikash/vllm.cpp-rdna3-wmma/examples/bench/bench_core.h:1005). + +Remaining runtime limits include the older installed Torch dependency warning (the latest vLLM wheel was built against the container's Torch 2.12 development build), absent optional Mooncake/Rust components, and pending latest llama/native A/B/trace results until the coordinator completes those runs. The first attempt's serialization failure is preserved separately from the successful primary retry. diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-archive-map.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-archive-map.json new file mode 100644 index 000000000..3716986ce --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-archive-map.json @@ -0,0 +1,17 @@ +[ + { + "original_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "archive_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/run_native_trace.py", + "sha256": "c49a39c43dd77f5548c010ddcd10dda4ef07e4673f935dab745e1b5b655c7a88" + }, + { + "original_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/HANDOFF.md", + "archive_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/HANDOFF.md", + "sha256": "92baebc89b7b478da8429784169a8e3e25c7d1b2aeb48fefc144df7463731c0d" + }, + { + "original_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/adapter-manifest.json", + "archive_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/history/trace-gguf-fix-before/adapter-manifest.json", + "sha256": "c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254" + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-run_native_trace.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-run_native_trace.py new file mode 100644 index 000000000..9db732cfd --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-history-trace-gguf-fix-before-run_native_trace.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 +"""Prepare or execute one bounded native rocprofv3 trace under the caller's GPU mutex.""" +from __future__ import annotations + +import argparse +import json +import os +from pathlib import Path +import subprocess +import sys +import traceback + +from run_native_ab import PREP, REPO, file_identity, command_output, parse_metrics, validate_ids, write_json + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--arm', choices=('on', 'off'), required=True) + parser.add_argument('--output-dir', type=Path, required=True) + parser.add_argument('--prepare-only', action='store_true', help='write exact argv and input identities without reading GPU activity or starting the trace') + args = parser.parse_args() + args.output_dir = args.output_dir.absolute() + args.output_dir.mkdir(parents=True, exist_ok=False) + report_path = args.output_dir / 'recipe-and-result.json' + report = {'status': 'PREPARING', 'arm': args.arm, 'argv': sys.argv, + 'adapter': file_identity(Path(__file__)), 'phase': 'preparation'} + try: + source_dataset = PREP / 'qwen35-4b-text/workload.json' + records = json.loads(source_dataset.read_text()) + if not isinstance(records, list) or len(records) != 2: + raise ValueError('original workload must contain exactly two records') + expanded = args.output_dir / 'workload-eight.json' + write_json(expanded, records * 4) + binary = REPO / 'build-rdna3-wmma-operator/examples/vllm-bench' + profiler = Path('/opt/rocm/bin/rocprofv3') + trace_tmp = PREP / 'cache/rocprof' / args.output_dir.name + trace_tmp.mkdir(parents=True, exist_ok=True) + if str(trace_tmp).startswith('/dev/shm') or not os.access(trace_tmp, os.W_OK): + raise RuntimeError('profiler temporary directory must be writable task storage') + profiler_outputs = args.output_dir / 'rocprof' + profiler_outputs.mkdir() + ids_path = args.output_dir / 'output-token-ids.json' + toggle = ['env', '-u', 'VT_ROCM_QUANT_WMMA'] if args.arm == 'on' else ['env', 'VT_ROCM_QUANT_WMMA=0'] + traced_argv = toggle + ['HIP_VISIBLE_DEVICES=0', 'ROCR_VISIBLE_DEVICES=0', + 'ROCPROF_TMPDIR=' + str(trace_tmp), 'TMPDIR=' + str(trace_tmp), str(profiler), + '--hip-trace', '--kernel-trace', '--memory-copy-trace', '--memory-allocation-trace', + '--marker-trace', '--stats', '--output-config', '--output-format', 'csv', 'json', + '--output-directory', str(profiler_outputs), '--output-file', 'native-' + args.arm, + '--', str(binary), '--model', str(PREP / 'qwen35-4b-text'), + '--dataset-path', str(expanded), '--num-prompts', '8', '--input-len', '256', + '--output-len', '16', '--concurrency', '1', '--max-num-batched-tokens', '512', + '--num-blocks', '64', '--temperature', '0', '--seed', '0', '--skip-chat-template', + '--ignore-eos', '--output-token-ids', str(ids_path)] + monitor_path = args.output_dir / 'monitor.jsonl' + monitor_argv = [sys.executable, str(PREP / 'adapters/monitor_command.py'), + '--output-jsonl', str(monitor_path), '--interval-seconds', '0.05', + '--timeout-seconds', '600', '--'] + traced_argv + report.update( + binary=file_identity(binary), profiler=file_identity(profiler), + profiler_version=command_output([str(profiler), '--version']), + revision=command_output(['git', '-C', str(REPO), 'rev-parse', 'HEAD']), + original_dataset=file_identity(source_dataset), expanded_dataset=file_identity(expanded), + original_record_index_for_request=[0, 1] * 4, + rocprof_tmpdir=str(trace_tmp), traced_argv=traced_argv, monitor_argv=monitor_argv, + trace_scope='unfiltered HIP API, kernel dispatch, memory copy/allocation, and ROCTx traces; no hardware counter or ATT collection', + interpretation='trace overhead changes timings; use these runs to identify executing paths, not as the unprofiled performance denominator') + report['status'] = 'PREPARED' + write_json(report_path, report) + if args.prepare_only: + print(json.dumps({'status': 'PREPARED', 'recipe': str(report_path), 'gpu_executed': False})) + return 0 + report['phase'] = 'idle_gate' + busy = int(Path('/sys/class/drm/card1/device/gpu_busy_percent').read_text().strip()) + if not 0 <= busy <= 2: + raise RuntimeError(f'GPU idle gate rejected busy={busy}; limit=2') + report['gpu_busy_percent_before'] = busy + report['phase'] = 'trace' + report['status'] = 'RUNNING' + write_json(report_path, report) + result = subprocess.run(monitor_argv, check=False) + report['exit_code'] = result.returncode + if result.returncode: + raise RuntimeError(f'trace monitor/application exited {result.returncode}') + report['generated_token_ids'] = validate_ids(json.loads(ids_path.read_text())) + report['metrics_with_profiler_overhead'] = parse_metrics(monitor_path.with_suffix('.stdout.log').read_text()) + report['trace_files'] = [file_identity(path) for path in sorted(profiler_outputs.rglob('*')) if path.is_file()] + if not report['trace_files']: + raise RuntimeError('rocprofv3 produced no trace files') + if file_identity(binary) != report['binary'] or file_identity(expanded) != report['expanded_dataset']: + raise RuntimeError('binary or dataset changed across the trace') + report.update(status='COMPLETE', phase='complete') + write_json(report_path, report) + print(json.dumps({'status': 'COMPLETE', 'report': str(report_path)})) + return 0 + except Exception as exc: + report.update(status='ERROR', error=str(exc), error_type=type(exc).__name__, traceback=traceback.format_exc()) + write_json(report_path, report) + print(json.dumps({'status': 'ERROR', 'error': str(exc), 'report': str(report_path)}), file=sys.stderr) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..4742a2ea498010caec487dfb5868ea93a3a6fb46 GIT binary patch literal 4677 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 H=IQ_dX3JUv literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.stderr.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.stderr.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..53cac0f70c998bf82d8459940f8034e4cb7ba9a4 GIT binary patch literal 7222 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 L7Efmme7yev;`#wD literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-llama-model-monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..b8984c7d5fa1b4fe067ec5a13c34050aaef4dab2 GIT binary patch literal 125 zcmV-@0D}J?iwFP!000020}aff4#GeT24K%){CcAT)GV2UfWVVx*D#>BF4rCi!n^oSEwFU;zY+302c(Ko9g(np%Y2jV}$(eiQ5D((i1}RRe+%#Jf f-9FtGbnxJ)ZN=eyx*W&rh~MT9b~tPqa{vGUArm= deadline + if args.docker_name: + observed = inspect_container(container['id'] if container else args.docker_name) + if observed is not None and (container is None or observed != container): + emit({'event': 'container_identity', 'container': observed}) + if observed is not None: + container = observed + root_pid = container['pid'] if args.docker_name and container else None + if not args.docker_name: + root_pid = process.pid + process_data = process_snapshot(root_pid, helper) + device_data = device_snapshot(args.sysfs_device) + emit({'event': 'sample', 'sample_index': sample_count, + 'command_pid': process.pid, 'process_tree': process_data, 'device': device_data, + 'host_mem_available_bytes': helper.read_mem_available() * 1024}) + sample_count += 1 + for key, value in (('rss_bytes', process_data['rss_bytes']), + ('pss_bytes', process_data['pss_bytes']), + ('device_vram_used_bytes', device_data['mem_info_vram_used'])): + if value is not None: + peaks[key] = value if peaks[key] is None else max(peaks[key], value) + if timed_out: + stop_owned(process, container) + emit({'event': 'end', 'status': 'TIMEOUT', 'exit_code': process.returncode, + 'samples': sample_count, 'sampled_peaks': peaks}) + return 124 + result = process.poll() + if result is not None: + if args.docker_name and container is None: + emit({'event': 'end', 'status': 'MONITOR_INCOMPLETE', 'exit_code': result, + 'error': 'named container was never observed; no Docker process memory was measured', + 'samples': sample_count, 'sampled_peaks': peaks}) + return result if result else 2 + emit({'event': 'end', 'status': 'COMPLETE' if result == 0 else 'COMMAND_FAILED', + 'exit_code': result, 'samples': sample_count, 'sampled_peaks': peaks, + 'peak_scope': 'maximum observed samples, not a continuous or process-GPU peak', + 'command_stdout_sha256': digest(stdout_path), + 'command_stderr_sha256': digest(stderr_path)}) + return result + time.sleep(min(args.interval_seconds, max(0.0, deadline - time.monotonic()))) + except BaseException as exc: + stop_owned(process, container) + emit({'event': 'end', 'status': 'MONITOR_ERROR', 'error': str(exc), + 'error_type': type(exc).__name__, 'traceback': traceback.format_exc(), + 'samples': sample_count, 'sampled_peaks': peaks}) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.cpu-contention.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.cpu-contention.json new file mode 100644 index 000000000..259090936 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.cpu-contention.json @@ -0,0 +1,15 @@ +{ + "ps": { + "argv": [ + "ps", + "-eo", + "pid,ppid,stat,psr,pcpu,pmem,comm", + "--sort=-pcpu" + ], + "exit_code": 0, + "stdout": " PID PPID STAT PSR %CPU %MEM COMMAND\n2404307 2404100 S 39 14.2 0.0 python\n 723829 723821 Sl 39 7.0 0.2 agent-8e55cc8\n 5238 1 Sl 9 0.8 0.0 mintreport-tray\n3810237 1831498 Sl 18 0.8 0.2 2.1.260\n 741641 1 Ssl 10 0.7 0.3 codex\n1843130 1831498 Sl 10 0.6 0.2 2.1.260\n2452314 1831498 Sl 40 0.6 0.2 2.1.260\n4059929 1 Ssl 9 0.5 0.0 tailscaled\n1832713 1831498 Sl 22 0.5 0.2 2.1.260\n 1855 1 Ssl 29 0.4 0.0 OpenLinkHub\n1852369 1 Sl 5 0.3 0.1 zellij\n3809533 3809532 Sl+ 9 0.3 0.6 MainThread\n2404100 741641 Ss 40 0.2 0.0 flock\n 324 2 S 39 0.1 0.0 kcompactd0\n 3520 3464 Sl 39 0.1 0.0 cinnamon\n2286681 2286667 Sl 21 0.1 0.1 MainThread\n2286632 741641 Sl 23 0.0 0.0 npm exec @autom\n 2660 1 Ssl 22 0.0 0.0 redis-server\n2286667 2286666 Sl 45 0.0 0.0 MainThread\n2353934 2 I 21 0.0 0.0 kworker/21:4-events\n1564708 1564691 Sl 47 0.0 0.1 MainThread\n2353930 2 I 16 0.0 0.0 kworker/16:0-events\n1551123 1551112 Sl 23 0.0 0.1 MainThread\n1777113 2 I 34 0.0 0.0 kworker/u192:2-sdma0\n 15 2 I 1 0.0 0.0 rcu_preempt\n1700056 2 I 17 0.0 0.0 kworker/u198:0-flush-259:2\n2163407 2 I 17 0.0 0.0 kworker/17:2-events\n 358 2 S 22 0.0 0.0 kswapd0\n1564334 741641 Sl 3 0.0 0.0 npm exec @autom\n1551072 741641 Sl 43 0.0 0.0 npm exec @autom\n", + "stderr": "" + }, + "loadavg": "1.17 3.20 5.81 2/3104 2404480", + "sampled_utc": "2026-09-14T04:57:36.536292+00:00" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..c89d224d0dc48155372fea0e1b531a0e221e8b17 GIT binary patch literal 6983 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 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..89ea1772893fef770b7da0e1e10a09a1417251e1 GIT binary patch literal 687 zcmV;g0#N-QiwFP!000021D%ykZ=)~}hVT4}k@k{E8y6D-p;8a~kxJ2~O4XvhyD%Xr zV6(PK+gcOESk57o1^`vEFiV_aq_PXIZ4$?#GDyYXy2O4MS5JpGL^6jJ1c z1{UY3QmNo=m^Qf|KOtg94PyOXAPgk_Dp6^Shi8hc)Z)VTN@QE3skD$R!3OrSqMkKR zxR405<@43pXL+@`y#~vRswi!~#eG{d4I0gNOyjkx1E@_}6ej9Gve&v~!!{3_S0)qH z5$4Zd>w&$cd6`2bcvMP>T*C{~rab3NE6e9HicqOlnL%BYE)keExxHQu9d)Dk+iQBq zW{pe9v}p+#sE%E*iRz}?Mttv zD3f(1TXoINgO+bx*t|J`sY4vMoo64+_?r^H2CY%OAWU;KJlvRrY-?MZsnCw8!(0YT7H4#u7r5GT0gra%dGJwN;m z@GZ&+P*oRrc3+@4G?t@}4PThnGzaIz z%{*N6iGIONAJTB1+jP@U4jf8s_sq?V$HvRZ+%FwwX3nffcsjOy;=7?6}*O- zesVAlCLXcJCuYnIwo0=MwhF#uBw_?*hP^qANi~T-(MH?N`IXcD8N}AK@atM+2(siR z89MgJgdT6oolYm7@|)@uRh;hX9&6wRrm_s#ES|ZEggNJG`o(`JH Vn9#|dyZeu2{R7hr$XBii005%7PICYN literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.output-token-ids.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.output-token-ids.json new file mode 100644 index 000000000..a8ff7e3f1 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off1.output-token-ids.json @@ -0,0 +1 @@ +[[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700]] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.cpu-contention.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.cpu-contention.json new file mode 100644 index 000000000..8a621bfa2 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.cpu-contention.json @@ -0,0 +1,15 @@ +{ + "ps": { + "argv": [ + "ps", + "-eo", + "pid,ppid,stat,psr,pcpu,pmem,comm", + "--sort=-pcpu" + ], + "exit_code": 0, + "stdout": " PID PPID STAT PSR %CPU %MEM COMMAND\n2404307 2404100 S 21 7.2 0.0 python\n 723829 723821 Sl 39 7.0 0.2 agent-8e55cc8\n 5238 1 Sl 15 0.8 0.0 mintreport-tray\n3810237 1831498 Sl 34 0.8 0.2 2.1.260\n 741641 1 Ssl 10 0.7 0.3 codex\n1843130 1831498 Sl 45 0.6 0.2 2.1.260\n2452314 1831498 Sl 17 0.6 0.2 2.1.260\n4059929 1 Ssl 9 0.5 0.0 tailscaled\n1832713 1831498 Sl 12 0.5 0.2 2.1.260\n 1855 1 Ssl 29 0.4 0.0 OpenLinkHub\n1852369 1 Sl 5 0.3 0.1 zellij\n3809533 3809532 Sl+ 11 0.3 0.6 MainThread\n2404443 2 I 21 0.2 0.0 kworker/21:1-mm_percpu_wq\n 324 2 S 39 0.1 0.0 kcompactd0\n 3520 3464 Sl 45 0.1 0.0 cinnamon\n2404100 741641 Ss 40 0.1 0.0 flock\n2286681 2286667 Sl 23 0.1 0.1 MainThread\n2286632 741641 Sl 23 0.0 0.0 npm exec @autom\n 2660 1 Ssl 22 0.0 0.0 redis-server\n2286667 2286666 Sl 45 0.0 0.0 MainThread\n2353934 2 I 21 0.0 0.0 kworker/21:4-events\n1564708 1564691 Sl 47 0.0 0.1 MainThread\n2353930 2 I 16 0.0 0.0 kworker/16:0-events\n1551123 1551112 Sl 23 0.0 0.1 MainThread\n1777113 2 I 21 0.0 0.0 kworker/u192:2-sdma0\n 15 2 I 10 0.0 0.0 rcu_preempt\n1700056 2 I 17 0.0 0.0 kworker/u198:0-flush-259:2\n2348000 2 I 15 0.0 0.0 kworker/15:1-rcu_gp\n 358 2 S 22 0.0 0.0 kswapd0\n2163407 2 I 17 0.0 0.0 kworker/17:2-events\n", + "stderr": "" + }, + "loadavg": "1.42 3.16 5.76 1/3114 2404569", + "sampled_utc": "2026-09-14T04:57:50.379453+00:00" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..34d52b7e4941479dc3559f3040448698fbdbb8de GIT binary patch literal 7343 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 VMpF~HC-}qP{4aEjpNh(d0RYBu!-D_- literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.stderr.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.stderr.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..10101902c0e8d865b2ebe529ba45ab46375bdd8b GIT binary patch literal 465 zcmV;?0WSU@iwFP!00002167hwZ`&{o#qaqPJhs4O=Z~8P0esjF1BPNPy2Gx9A~CjR zNfad7Nq~L$NnY1&CqWRO-tUo|t##srUJXa62Xa`?W|V2D9ci?we!ZaIRS%;1Bwm~D zsrxD>pDghp@bGxvJnoyS@24}M?~O_L%N zQ;gaB)@~pn>UIr`F0|`vy#_5=Cgk=%DvDBBtfTgFCoaxOVI^bYT51^>W2(JmGoz3v zu_O?MuD(zlElDlV^aEEv5_uTsPDwRjr}-AJl@k+~-c!U5DPdAem?PzJinoF~U&mQ2LgCO+yuq1b2DapTjAfvV zSFTobUaCrkaD>HzVCy literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off2.monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..99aad0945db87b4c3d890f53fd9e833b782215f8 GIT binary patch literal 687 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 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-off3.monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..087c7a61319aa2e7e087236b12d617eacbe89164 GIT binary patch literal 686 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 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..101c8d643742aa767cf95361b645459f5a5dccf4 GIT binary patch literal 686 zcmV;f0#W@RiwFP!000021D%!IZks?5hVOZbk$PiG^~Q^VK%`vs;7C>-B}!25H!#M? zuuFFrCu!Ap@8W$ZJhn`JqPiUPhOkJdSp8+bxhW*R!rS#zGG z9APB|*T~}=IDfvVcOEU5_tj@>_XSk6#<sn``uH=%5?D-(1o= zG;3T+rcF!0NS(d~pLoum3x#GGq`W9iQL6Sjns%x%J>>JXoH^BjT!^`~T7kDN8B4}@ushKIXUnzX}R zpyp5O9vO!)ybEEJpQ(0pt^cA;Q*4FhV-EAaF86>lz7dCJUCpKZ7e4r7rr#DX$Gg~ zW)Ut2L_g(b2wAzY+ir%*ReIDuax>?#@iH;*mosMO_IyBiIyJrRx*an^NYC@g%xRe! zCI_=?*Cp3p&y0D4t@vaB}0JY9dn*aa+ literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.output-token-ids.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.output-token-ids.json new file mode 100644 index 000000000..a8ff7e3f1 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on1.output-token-ids.json @@ -0,0 +1 @@ +[[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700]] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.cpu-contention.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.cpu-contention.json new file mode 100644 index 000000000..7f81771f2 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.cpu-contention.json @@ -0,0 +1,15 @@ +{ + "ps": { + "argv": [ + "ps", + "-eo", + "pid,ppid,stat,psr,pcpu,pmem,comm", + "--sort=-pcpu" + ], + "exit_code": 0, + "stdout": " PID PPID STAT PSR %CPU %MEM COMMAND\n 723829 723821 Sl 16 7.0 0.2 agent-8e55cc8\n2404307 2404100 S 21 4.9 0.0 python\n 5238 1 Sl 21 0.8 0.0 mintreport-tray\n3810237 1831498 Sl 33 0.8 0.2 2.1.260\n 741641 1 Ssl 10 0.7 0.3 codex\n1843130 1831498 Sl 45 0.6 0.2 2.1.260\n2452314 1831498 Sl 46 0.6 0.2 2.1.260\n4059929 1 Ssl 9 0.5 0.0 tailscaled\n1832713 1831498 Sl 18 0.5 0.2 2.1.260\n 1855 1 Ssl 29 0.4 0.0 OpenLinkHub\n1852369 1 Sl 5 0.3 0.1 zellij\n3809533 3809532 Sl+ 33 0.3 0.6 MainThread\n2404443 2 I 21 0.3 0.0 kworker/21:1-mm_percpu_wq\n 324 2 S 39 0.1 0.0 kcompactd0\n 3520 3464 Sl 45 0.1 0.0 cinnamon\n2286681 2286667 Sl 23 0.1 0.1 MainThread\n2286632 741641 Sl 23 0.0 0.0 npm exec @autom\n2404100 741641 Ss 40 0.0 0.0 flock\n 2660 1 Ssl 23 0.0 0.0 redis-server\n2353930 2 I 16 0.0 0.0 kworker/16:0-events\n2286667 2286666 Sl 45 0.0 0.0 MainThread\n1564708 1564691 Sl 46 0.0 0.1 MainThread\n2353934 2 I 21 0.0 0.0 kworker/21:4-events\n1551123 1551112 Sl 23 0.0 0.1 MainThread\n2348000 2 I 15 0.0 0.0 kworker/15:1-events\n1777113 2 I 21 0.0 0.0 kworker/u192:2-sdma0\n 15 2 I 4 0.0 0.0 rcu_preempt\n1700056 2 I 17 0.0 0.0 kworker/u198:0-flush-259:2\n 358 2 S 22 0.0 0.0 kswapd0\n2163407 2 I 17 0.0 0.0 kworker/17:2-events\n", + "stderr": "" + }, + "loadavg": "2.97 3.40 5.79 1/3113 2404855", + "sampled_utc": "2026-09-14T04:58:04.198432+00:00" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..61fc977c8e7e16ec5bb18dc4d87a45b0c51d2053 GIT binary patch literal 6939 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 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.stderr.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.stderr.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..10101902c0e8d865b2ebe529ba45ab46375bdd8b GIT binary patch literal 465 zcmV;?0WSU@iwFP!00002167hwZ`&{o#qaqPJhs4O=Z~8P0esjF1BPNPy2Gx9A~CjR zNfad7Nq~L$NnY1&CqWRO-tUo|t##srUJXa62Xa`?W|V2D9ci?we!ZaIRS%;1Bwm~D zsrxD>pDghp@bGxvJnoyS@24}M?~O_L%N zQ;gaB)@~pn>UIr`F0|`vy#_5=Cgk=%DvDBBtfTgFCoaxOVI^bYT51^>W2(JmGoz3v zu_O?MuD(zlElDlV^aEEv5_uTsPDwRjr}-AJl@k+~-c!U5DPdAem?PzJinoF~U&mQ2LgCO+yuq1b2DapTjAfvV zSFTobUaCrkaD>HzVCy literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on2.monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..e67688017764e097afe210550d2b9454b12f0894 GIT binary patch literal 685 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 gpDghp@bGxvJnoyS@24}M?~O_L%N zQ;gaB)@~pn>UIr`F0|`vy#_5=Cgk=%DvDBBtfTgFCoaxOVI^bYT51^>W2(JmGoz3v zu_O?MuD(zlElDlV^aEEv5_uTsPDwRjr}-AJl@k+~-c!U5DPdAem?PzJinoF~U&mQ2LgCO+yuq1b2DapTjAfvV zSFTobUaCrkaD>HzVCy literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..ed59158658b9a9fc4cc60c8455b3bc8176c0c17b GIT binary patch literal 683 zcmV;c0#yAUiwFP!000021D%ykZ=)~}hVT4}k@k{E8#g9|K&2k`BbA~}m8y;Q?!tti zfX&(_ZFjZ*eGMfEkPxBui4dN7=N*s7)?IzUK1os%WEp%#9&A%4ckqNNPc$^Xv*tXC zIl@K?u91hg(7nE>cOER455==p{s0whG0c;gM}VBYBzP&nxb|#4O4MS9JpPR#WKyJ= z1{S8VQnBDonAW);KOta74MP2%Aq*t`%28w&$+X`VtLc#unpT*C{~rab3NBg^MJ2vDg_owa_eqm}j{uO3_}OX##a@uf;{k(WsdcUt#G91M8{srMFV# z(YBB+y5{CWu4Cd)j@&BO#}pf|dDDWaLp-;cXCDlxHzw}1;zreib)2H%;Xalo?R6RG z@Tc{FjKg|;zlK5DQSHN;`7Uvs!!BbO_arCYjEoOiJ^Fr6IhZ)knAr4^n+zpX_5AQN zz_%bFKvh-XVcX&3s)r;sjpaehVGpvwl@5E!6`VJN_I@qQG?t@}4PTnpGzX{UX0cxO zi+<*&4_R=Nx|@D-Kz-tm&)m#;XuOQf{nBA(ZqIv!r{kGRT)$za59zw@@er0~`pLm$ zW={z9T4u}*wuzGj_6ojZAVLIXhP^qAQ89@>(OTOr_?6TC8N}YS@atA22r}m;8R|~S z%s<_frA{Xv^PA!n8P2vHLha^^8H8nW!)sHcF=NV&Fo$ZSv_zJ|2M@(yY!900giP%N RclRI5`Ui&<&tR?y0055ESWo}} literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.output-token-ids.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.output-token-ids.json new file mode 100644 index 000000000..a8ff7e3f1 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-on3.output-token-ids.json @@ -0,0 +1 @@ +[[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700]] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-summary.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-summary.json new file mode 100644 index 000000000..5f33d2dbc --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-summary.json @@ -0,0 +1,2679 @@ +{ + "status": "COMPLETE", + "phase": "complete", + "argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py", + "--output-dir", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf" + ], + "adapter_sha256": "397f10f847ad3e9643d6a95cfcbf66d4beaa2eb7b3b72b2e474659dafe847c7e", + "order": [ + "on1", + "off1", + "off2", + "on2", + "on3", + "off3" + ], + "runs": [ + { + "label": "on1", + "arm": "on", + "argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.output-token-ids.json" + ], + "native_argv": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.output-token-ids.json" + ], + "wmma_environment": null, + "gpu_busy_percent_before": 0, + "cpu_contention": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.cpu-contention.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.cpu-contention.json", + "sha256": "16eb3baa807bd363b4b88b533170058fce6729bb74d7141a776c9812baf1115b", + "stat": [ + 66309, + 5801771, + 1783, + 1789361844406552250, + 1789361844406552250 + ] + }, + "monitor_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.monitor.jsonl", + "external_process_wall_seconds_including_monitor": 12.064297026954591, + "exit_code": 0, + "output_token_ids_file": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.output-token-ids.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.output-token-ids.json", + "sha256": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "stat": [ + 66309, + 5801803, + 610, + 1789361856055685025, + 1789361856055685025 + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 8.64, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.93, + "Output token throughput (tok/s)": 14.81, + "Total token throughput (tok/s)": 180.0, + "Mean TTFT (ms)": 794.91, + "Median TTFT (ms)": 386.51, + "P99 TTFT (ms)": 3431.82, + "Mean TPOT (ms)": 19.04, + "Median TPOT (ms)": 18.66, + "P99 TPOT (ms)": 21.6, + "Mean ITL (ms)": 19.04, + "Median ITL (ms)": 18.62, + "P99 ITL (ms)": 19.12, + "Mean E2EL (ms)": 1080.55, + "Median E2EL (ms)": 666.34, + "P99 E2EL (ms)": 3755.76, + "Input token throughput (tok/s, over whole run)": 165.19, + "Prefill token throughput (tok/s, in/TTFT)": 224.55, + "Output (decode) token throughput (tok/s)": 14.81, + "Mean per-stream decode rate (tok/s)": 52.51 + }, + "external_minus_benchmark_duration_seconds": 3.4242970269545907, + "matches_first_process_exactly": true + }, + { + "label": "off1", + "arm": "off", + "argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.output-token-ids.json" + ], + "native_argv": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.output-token-ids.json" + ], + "wmma_environment": "0", + "gpu_busy_percent_before": 0, + "cpu_contention": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.cpu-contention.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.cpu-contention.json", + "sha256": "96565b697ce24b5dc96d08017019535ce405a3ec299594014b0e0c8f509eae87", + "stat": [ + 66309, + 5801779, + 1780, + 1789361856536404878, + 1789361856536404878 + ] + }, + "monitor_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.monitor.jsonl", + "external_process_wall_seconds_including_monitor": 13.778154517058283, + "exit_code": 0, + "output_token_ids_file": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.output-token-ids.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.output-token-ids.json", + "sha256": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "stat": [ + 66309, + 5801865, + 610, + 1789361869935842635, + 1789361869935842635 + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 10.46, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.76, + "Output token throughput (tok/s)": 12.24, + "Total token throughput (tok/s)": 148.74, + "Mean TTFT (ms)": 1025.42, + "Median TTFT (ms)": 617.09, + "P99 TTFT (ms)": 3669.29, + "Mean TPOT (ms)": 18.81, + "Median TPOT (ms)": 18.77, + "P99 TPOT (ms)": 19.12, + "Mean ITL (ms)": 18.81, + "Median ITL (ms)": 18.64, + "P99 ITL (ms)": 21.04, + "Mean E2EL (ms)": 1307.62, + "Median E2EL (ms)": 898.86, + "P99 E2EL (ms)": 3956.03, + "Input token throughput (tok/s, over whole run)": 136.51, + "Prefill token throughput (tok/s, in/TTFT)": 174.08, + "Output (decode) token throughput (tok/s)": 12.24, + "Mean per-stream decode rate (tok/s)": 53.15 + }, + "external_minus_benchmark_duration_seconds": 3.3181545170582822, + "matches_first_process_exactly": true + }, + { + "label": "off2", + "arm": "off", + "argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.output-token-ids.json" + ], + "native_argv": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.output-token-ids.json" + ], + "wmma_environment": "0", + "gpu_busy_percent_before": 0, + "cpu_contention": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.cpu-contention.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.cpu-contention.json", + "sha256": "9c8fd937babf1ddc20abee86441ae617ddd4d8ce3cfa5c70997413a9a91a302a", + "stat": [ + 66309, + 5801832, + 1794, + 1789361870379559209, + 1789361870379559209 + ] + }, + "monitor_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.monitor.jsonl", + "external_process_wall_seconds_including_monitor": 13.754821927286685, + "exit_code": 0, + "output_token_ids_file": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.output-token-ids.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.output-token-ids.json", + "sha256": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "stat": [ + 66309, + 5801971, + 610, + 1789361883812999583, + 1789361883812999583 + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 10.47, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.76, + "Output token throughput (tok/s)": 12.23, + "Total token throughput (tok/s)": 148.62, + "Mean TTFT (ms)": 1026.69, + "Median TTFT (ms)": 616.49, + "P99 TTFT (ms)": 3687.62, + "Mean TPOT (ms)": 18.8, + "Median TPOT (ms)": 18.78, + "P99 TPOT (ms)": 19.06, + "Mean ITL (ms)": 18.8, + "Median ITL (ms)": 18.63, + "P99 ITL (ms)": 20.98, + "Mean E2EL (ms)": 1308.74, + "Median E2EL (ms)": 898.28, + "P99 E2EL (ms)": 3973.57, + "Input token throughput (tok/s, over whole run)": 136.39, + "Prefill token throughput (tok/s, in/TTFT)": 173.86, + "Output (decode) token throughput (tok/s)": 12.23, + "Mean per-stream decode rate (tok/s)": 53.18 + }, + "external_minus_benchmark_duration_seconds": 3.284821927286684, + "matches_first_process_exactly": true + }, + { + "label": "on2", + "arm": "on", + "argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.output-token-ids.json" + ], + "native_argv": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.output-token-ids.json" + ], + "wmma_environment": null, + "gpu_busy_percent_before": 0, + "cpu_contention": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.cpu-contention.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.cpu-contention.json", + "sha256": "fa334e0ff9f5210f37bde1618850d6cc5a618af8d62cc86015543c8cabae3483", + "stat": [ + 66309, + 5801890, + 1794, + 1789361884198552176, + 1789361884198552176 + ] + }, + "monitor_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.monitor.jsonl", + "external_process_wall_seconds_including_monitor": 12.022968934848905, + "exit_code": 0, + "output_token_ids_file": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.output-token-ids.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.output-token-ids.json", + "sha256": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "stat": [ + 66309, + 5802002, + 610, + 1789361895807134740, + 1789361895807134740 + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 8.68, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.92, + "Output token throughput (tok/s)": 14.75, + "Total token throughput (tok/s)": 179.3, + "Mean TTFT (ms)": 803.5, + "Median TTFT (ms)": 386.49, + "P99 TTFT (ms)": 3495.31, + "Mean TPOT (ms)": 18.75, + "Median TPOT (ms)": 18.64, + "P99 TPOT (ms)": 19.53, + "Mean ITL (ms)": 18.75, + "Median ITL (ms)": 18.63, + "P99 ITL (ms)": 19.05, + "Mean E2EL (ms)": 1084.76, + "Median E2EL (ms)": 665.95, + "P99 E2EL (ms)": 3788.28, + "Input token throughput (tok/s, over whole run)": 164.55, + "Prefill token throughput (tok/s, in/TTFT)": 222.15, + "Output (decode) token throughput (tok/s)": 14.75, + "Mean per-stream decode rate (tok/s)": 53.33 + }, + "external_minus_benchmark_duration_seconds": 3.342968934848905, + "matches_first_process_exactly": true + }, + { + "label": "on3", + "arm": "on", + "argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.output-token-ids.json" + ], + "native_argv": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.output-token-ids.json" + ], + "wmma_environment": null, + "gpu_busy_percent_before": 0, + "cpu_contention": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.cpu-contention.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.cpu-contention.json", + "sha256": "6c9de89ebbc797daf8ac01a3e3ffb8bc4b5c2f28af3b1003a3d1bee2b2f6cf25", + "stat": [ + 66309, + 5801989, + 1785, + 1789361896286884030, + 1789361896286884030 + ] + }, + "monitor_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.monitor.jsonl", + "external_process_wall_seconds_including_monitor": 11.877757356967777, + "exit_code": 0, + "output_token_ids_file": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.output-token-ids.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.output-token-ids.json", + "sha256": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "stat": [ + 66309, + 5802024, + 610, + 1789361907795269382, + 1789361907795269382 + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 8.61, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.93, + "Output token throughput (tok/s)": 14.86, + "Total token throughput (tok/s)": 180.65, + "Mean TTFT (ms)": 796.44, + "Median TTFT (ms)": 387.05, + "P99 TTFT (ms)": 3440.21, + "Mean TPOT (ms)": 18.68, + "Median TPOT (ms)": 18.68, + "P99 TPOT (ms)": 18.87, + "Mean ITL (ms)": 18.68, + "Median ITL (ms)": 18.63, + "P99 ITL (ms)": 19.9, + "Mean E2EL (ms)": 1076.69, + "Median E2EL (ms)": 666.93, + "P99 E2EL (ms)": 3723.18, + "Input token throughput (tok/s, over whole run)": 165.79, + "Prefill token throughput (tok/s, in/TTFT)": 224.12, + "Output (decode) token throughput (tok/s)": 14.86, + "Mean per-stream decode rate (tok/s)": 53.52 + }, + "external_minus_benchmark_duration_seconds": 3.2677573569677776, + "matches_first_process_exactly": true + }, + { + "label": "off3", + "arm": "off", + "argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.output-token-ids.json" + ], + "native_argv": [ + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.output-token-ids.json" + ], + "wmma_environment": "0", + "gpu_busy_percent_before": 0, + "cpu_contention": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.cpu-contention.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.cpu-contention.json", + "sha256": "4da094f8bc8cec03095c82fcb57b03d2f9dfa2bb9de1f44c5b34fd900b9bb1b3", + "stat": [ + 66309, + 5802009, + 1794, + 1789361908229631233, + 1789361908229631233 + ] + }, + "monitor_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.monitor.jsonl", + "external_process_wall_seconds_including_monitor": 13.733848017640412, + "exit_code": 0, + "output_token_ids_file": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.output-token-ids.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.output-token-ids.json", + "sha256": "2999b766a20e2babf8a69d5da0a0d0dfc548760efc93c45ac17b5e4b50a04630", + "stat": [ + 66309, + 5802048, + 610, + 1789361921591423792, + 1789361921591423792 + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 10.5, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.76, + "Output token throughput (tok/s)": 12.2, + "Total token throughput (tok/s)": 148.25, + "Mean TTFT (ms)": 1029.6, + "Median TTFT (ms)": 618.49, + "P99 TTFT (ms)": 3705.72, + "Mean TPOT (ms)": 18.82, + "Median TPOT (ms)": 18.78, + "P99 TPOT (ms)": 19.13, + "Mean ITL (ms)": 18.82, + "Median ITL (ms)": 18.62, + "P99 ITL (ms)": 21.1, + "Mean E2EL (ms)": 1311.96, + "Median E2EL (ms)": 899.97, + "P99 E2EL (ms)": 3992.68, + "Input token throughput (tok/s, over whole run)": 136.06, + "Prefill token throughput (tok/s, in/TTFT)": 173.37, + "Output (decode) token throughput (tok/s)": 12.2, + "Mean per-stream decode rate (tok/s)": 53.12 + }, + "external_minus_benchmark_duration_seconds": 3.233848017640412, + "matches_first_process_exactly": true + } + ], + "started_utc": "2026-09-14T04:57:22.382028+00:00", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "datasets": { + "original": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "sha256": "4cab7f33eef255088ed38506aedb5750f3dfc0201a5c86459b385a1f5430468b", + "stat": [ + 66309, + 4601165, + 2042, + 1789359425030664149, + 1789359769692833552 + ] + }, + "expanded": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777", + "stat": [ + 66309, + 5801764, + 8159, + 1789361842382257639, + 1789361842382257639 + ] + }, + "original_record_index_for_request": [ + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1 + ], + "transformation": "exact original records repeated four times in original order" + }, + "binary": { + "path": "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "resolved_path": "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "sha256": "ae64e829a31ff62b3b1dac2a56b35ec8fdb449ee681b8f62aeab2c432583b902", + "stat": [ + 66309, + 4601425, + 32315864, + 1789360008243853412, + 1789360008245853428 + ] + }, + "shared_libraries": { + "ldd": { + "argv": [ + "ldd", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench" + ], + "exit_code": 0, + "stdout": "\tlinux-vdso.so.1 (0x00007d3985eb6000)\n\tlibamdhip64.so.7 => /opt/rocm/lib/libamdhip64.so.7 (0x00007d3982600000)\n\tlibhipblas.so.3 => /opt/rocm/lib/libhipblas.so.3 (0x00007d3985dd8000)\n\tlibhipblaslt.so.1 => /opt/rocm/lib/libhipblaslt.so.1 (0x00007d3981e00000)\n\tlibssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007d3982556000)\n\tlibcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007d3981800000)\n\tlibstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007d3981400000)\n\tlibm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007d398246d000)\n\tlibgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007d3985da8000)\n\tlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007d3981000000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007d3985eb8000)\n\tlibdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007d3985da3000)\n\tlibrocm_kpack.so.0 => /opt/rocm/lib/librocm_kpack.so.0 (0x00007d39841bc000)\n\tlibrocprofiler-register.so.0 => /opt/rocm/lib/librocprofiler-register.so.0 (0x00007d3981d24000)\n\tlibrt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007d3985d9c000)\n\tlibamd_comgr.so.3 => /opt/rocm/lib/libamd_comgr.so.3 (0x00007d3980200000)\n\tlibhsa-runtime64.so.1 => /opt/rocm/lib/libhsa-runtime64.so.1 (0x00007d397fc00000)\n\tlibpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007d3985d97000)\n\tlibrocsolver.so.0 => /opt/rocm/lib/librocsolver.so.0 (0x00007d397c800000)\n\tlibrocblas.so.5 => /opt/rocm/lib/librocblas.so.5 (0x00007d397aa00000)\n\tlibroctx64.so.4 => /opt/rocm/lib/libroctx64.so.4 (0x00007d3985d91000)\n\tliborigami.so.1 => /opt/rocm/lib/liborigami.so.1 (0x00007d398178c000)\n\tlibrocm_sysdeps_z.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1 (0x00007d3985d73000)\n\tlibrocroller.so.1 => /opt/rocm/lib/librocroller.so.1 (0x00007d3971a00000)\n\tlibrocm_sysdeps_zstd.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1 (0x00007d39816bd000)\n\tlibclang-cpp.so.23.0git => /opt/rocm/lib/llvm/lib/libclang-cpp.so.23.0git (0x00007d396d200000)\n\tlibLLVM.so.23.0git => /opt/rocm/lib/llvm/lib/libLLVM.so.23.0git (0x00007d3966200000)\n\tlibrocm_sysdeps_elf.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1 (0x00007d39841a0000)\n\tlibrocm_sysdeps_drm.so.2 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2 (0x00007d398418b000)\n\tlibrocm_sysdeps_drm_amdgpu.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1 (0x00007d3984176000)\n\tlibrocm_sysdeps_numa.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1 (0x00007d3984167000)\n\tlibrocm_sysdeps_liblzma.so.5 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5 (0x00007d398168c000)\n\tlibrocm_sysdeps_bz2.so => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so (0x00007d3982454000)\n", + "stderr": "" + }, + "files": [ + { + "path": "/lib/x86_64-linux-gnu/libc.so.6", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libc.so.6", + "sha256": "3a15d66867d83762c7f2f1e37359cb8f6c5743edb369c65285cb0b1c4f7498bf", + "stat": [ + 66309, + 33948923, + 2129424, + 1788444912000000000, + 1789112233148602011 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libcrypto.so.3", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libcrypto.so.3", + "sha256": "6a66c3ba6b3749aacc9497973fff00f6ba61c703ba7015d0d7ab3fd9510974b6", + "stat": [ + 66309, + 33949967, + 5309400, + 1787055036000000000, + 1787729381838214134 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libdl.so.2", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libdl.so.2", + "sha256": "c2994527172cc23b7fb0f7d611b71e00a37da27af12c2e5e9e0dc1a742886c96", + "stat": [ + 66309, + 33948926, + 14408, + 1788444912000000000, + 1789112233149602022 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libgcc_s.so.1", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libgcc_s.so.1", + "sha256": "d93224d2b0dab4247598be683adca02f5cf00586f99c187579cd7e92058fb7cb", + "stat": [ + 66309, + 33990458, + 183024, + 1766093810000000000, + 1779083976802023729 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libm.so.6", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libm.so.6", + "sha256": "fce00b6f25f459cf4ae0b7fae4257909a1a8a86f9149e7c029a5d617baf1ccd0", + "stat": [ + 66309, + 33948931, + 952616, + 1788444912000000000, + 1789112233149602022 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libpthread.so.0", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libpthread.so.0", + "sha256": "90491a21ce44efcf3bd4b65ec82501c091d7ebe7f8d9b341dd01d721001d9ecd", + "stat": [ + 66309, + 33948984, + 14408, + 1788444912000000000, + 1789112233153602069 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/librt.so.1", + "resolved_path": "/usr/lib/x86_64-linux-gnu/librt.so.1", + "sha256": "6d072187d88e092e81561a44c03a4a41397319022c6d43519757cc051c576d82", + "stat": [ + 66309, + 33948992, + 14624, + 1788444912000000000, + 1789112233154602080 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libssl.so.3", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libssl.so.3", + "sha256": "8e49cebd373d90b55f3626da71dd97fe8e95c68dc4c064d8962b27907690736e", + "stat": [ + 66309, + 33950037, + 696512, + 1787055036000000000, + 1787729381839214150 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libstdc++.so.6", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33", + "sha256": "1fd75fe70354a416d75aef22bcae68c47bd25d20e2d0568c30b1a9838cf62f11", + "stat": [ + 66309, + 33991310, + 2592224, + 1766093810000000000, + 1779083978698526498 + ] + }, + { + "path": "/lib64/ld-linux-x86-64.so.2", + "resolved_path": "/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", + "sha256": "c20a2dc8917c755f02b94049356320fe1f62ac7d9f8994731f807d9df39302da", + "stat": [ + 66309, + 33947893, + 236616, + 1788444912000000000, + 1789112233147602000 + ] + }, + { + "path": "/opt/rocm/lib/libamd_comgr.so.3", + "resolved_path": "/opt/rocm/core-10.0/lib/libamd_comgr.so.3.3.0", + "sha256": "ff98e63e6b8677eb51376816f3e1169e377ac446e7bf4c5d247683a72f2f59eb", + "stat": [ + 66309, + 49190269, + 13181720, + 1787272882000000000, + 1787946911196121942 + ] + }, + { + "path": "/opt/rocm/lib/libamdhip64.so.7", + "resolved_path": "/opt/rocm/core-10.0/lib/libamdhip64.so.7.15.26333-0000000", + "sha256": "817aeadfd9f62b68831ad89993163c7f1f470f30595e7e0da5fdc942193142a8", + "stat": [ + 66309, + 49190270, + 28216272, + 1787273088000000000, + 1787946911196121942 + ] + }, + { + "path": "/opt/rocm/lib/libhipblas.so.3", + "resolved_path": "/opt/rocm/core-10.0/lib/libhipblas.so.3.6", + "sha256": "24f0ad48d80c8fbdff8a67c89fccc213fb34210247e85da7161d05e076d7c1ef", + "stat": [ + 66309, + 49190330, + 937328, + 1787272954000000000, + 1787946913690165434 + ] + }, + { + "path": "/opt/rocm/lib/libhipblaslt.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/libhipblaslt.so.1.4", + "sha256": "1e8545626323f9b22c65d36492e1686b831cb85c8f7c8be3fc21c0d6cbb0d055", + "stat": [ + 66309, + 49190331, + 9081728, + 1787272953000000000, + 1787946913690165434 + ] + }, + { + "path": "/opt/rocm/lib/libhsa-runtime64.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/libhsa-runtime64.so.1.21.0", + "sha256": "69cfd3277b627dec1641166600764d2ee4c34bdfc8519e6ffe58a7e0d51bfbc0", + "stat": [ + 66309, + 49190273, + 4895880, + 1787272921000000000, + 1787946911198121977 + ] + }, + { + "path": "/opt/rocm/lib/liborigami.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/liborigami.so.1.0", + "sha256": "33bd6b994fa6ae8eeeecf2d628c18f0eece7bc2bdc9346b7b941073ead7aac65", + "stat": [ + 66309, + 49190333, + 560432, + 1787272960000000000, + 1787946913691165452 + ] + }, + { + "path": "/opt/rocm/lib/librocblas.so.5", + "resolved_path": "/opt/rocm/core-10.0/lib/librocblas.so.5.6", + "sha256": "d05939967b5f1bd184a4b8c1c77509c87a0abae3f0b3d079ba9d68ed1ddc50a5", + "stat": [ + 66309, + 49190334, + 27673472, + 1787272960000000000, + 1787946913691165452 + ] + }, + { + "path": "/opt/rocm/lib/librocm_kpack.so.0", + "resolved_path": "/opt/rocm/core-10.0/lib/librocm_kpack.so.0.1.0", + "sha256": "bb31da3416c89978478bfd45c3ac47d8fef2eebf41ad59ceff351e4c054c1ee7", + "stat": [ + 66309, + 49190275, + 339976, + 1787272901000000000, + 1787946911198121977 + ] + }, + { + "path": "/opt/rocm/lib/librocprofiler-register.so.0", + "resolved_path": "/opt/rocm/core-10.0/lib/librocprofiler-register.so.0.6.0", + "sha256": "7166282aacab9f6c8fdcc28ad884e57b6b09cd4e08aead98b8e862a61010e85c", + "stat": [ + 66309, + 49190291, + 967760, + 1787272961000000000, + 1787946911514127487 + ] + }, + { + "path": "/opt/rocm/lib/librocroller.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/librocroller.so.1.0.0", + "sha256": "0e7f6f32d5177aa04ae0c702f9aabc5d8130e2543b838f2f294786e33c01b469", + "stat": [ + 66309, + 49190335, + 233751464, + 1787272955000000000, + 1787946913692165469 + ] + }, + { + "path": "/opt/rocm/lib/librocsolver.so.0", + "resolved_path": "/opt/rocm/core-10.0/lib/librocsolver.so.0.11", + "sha256": "0d9307c7a5edede2e6ae75e2f7cd5eb8d462da0564a35f4348a89b212c0f323f", + "stat": [ + 66309, + 49190349, + 29471616, + 1787272959000000000, + 1787946914762184128 + ] + }, + { + "path": "/opt/rocm/lib/libroctx64.so.4", + "resolved_path": "/opt/rocm/core-10.0/lib/libroctx64.so.4.1.0", + "sha256": "ffaadd7b4e0e74e01dab93058bd5a2b237b1058e4ac685640c1aec27bd845ddd", + "stat": [ + 66309, + 49190312, + 7608, + 1787272927000000000, + 1787946912608146565 + ] + }, + { + "path": "/opt/rocm/lib/llvm/lib/libLLVM.so.23.0git", + "resolved_path": "/opt/rocm/core-10.0/lib/llvm/lib/libLLVM.so.23.0git", + "sha256": "1f258534e3b14393fb2d65d6cb6a93fac239727cc1df5b698b6d2b51f78a65d9", + "stat": [ + 66309, + 56265502, + 132274504, + 1787272886000000000, + 1787946910488109594 + ] + }, + { + "path": "/opt/rocm/lib/llvm/lib/libclang-cpp.so.23.0git", + "resolved_path": "/opt/rocm/core-10.0/lib/llvm/lib/libclang-cpp.so.23.0git", + "sha256": "0119f76826759e3f0534bb95bcc28e3e788e3a041e47b89310b3d324197b8ad3", + "stat": [ + 66309, + 56265508, + 89897976, + 1787272891000000000, + 1787946910490109629 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so", + "sha256": "628d4871ea18e82dcc73b28f45a587f00a7abd4b208b371a713eb2e9d5b95dec", + "stat": [ + 66309, + 49841939, + 104016, + 1787272881000000000, + 1787946905464021976 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2", + "sha256": "f1b274ac80ac1bcd241d70e1f13f9586e3fc83545a357b312890c1722ca68dcf", + "stat": [ + 66309, + 49841941, + 360336, + 1787272882000000000, + 1787946905465021992 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1", + "sha256": "78c1af14962d9ee0e43602d422eb8619b6c825a9b7c8f532308ea1f4108a466f", + "stat": [ + 66309, + 49841942, + 251416, + 1787272882000000000, + 1787946905465021992 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1", + "sha256": "a51543f71efce0c552ae606fe103b6e4fa4f6b283ba48a762f6d57b880401832", + "stat": [ + 66309, + 49841944, + 1198616, + 1787272881000000000, + 1787946905466022010 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5.8.1", + "sha256": "15402b36e2fdb0762e0b6590c3470fccec5e80cc8010c84ac4835573d592c02d", + "stat": [ + 66309, + 49841950, + 218464, + 1787265597000000000, + 1787946905468022045 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1", + "sha256": "333b980e3f706f7196c73a33967c7979e9fd47b6d5f5f51ed3990142ef4142cb", + "stat": [ + 66309, + 49841962, + 219056, + 1787265597000000000, + 1787946905473022132 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1.3.2", + "sha256": "27361c0c552d2afd5ecf9079f356309ed827e9a27d35f2fc68c7b5e6b5c83199", + "stat": [ + 66309, + 49841969, + 129576, + 1787265595000000000, + 1787946905476022184 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1.5.7", + "sha256": "5fc4ab0e6899318ece9bea43d3d397d20053418a5e40cb6bc86efe19a801c75e", + "stat": [ + 66309, + 49841970, + 879168, + 1787265600000000000, + 1787946905476022184 + ] + } + ], + "scope": "ELF dependencies resolved by ldd; runtime-loaded kernel objects remain in runtime trace evidence" + }, + "revision": { + "argv": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "c3fe98ba6c55ce71e75746e1b944a27640464e0f\n", + "stderr": "" + }, + "worktree_status": { + "argv": [ + "git", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + }, + "model_path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "model_inputs": [ + { + "path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "resolved_path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "sha256": "00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4", + "stat": [ + 66309, + 119839892, + 2740937888, + 1787995127572958838, + 1787995129132981824 + ] + } + ], + "inherited_runtime_environment": { + "HIP_VISIBLE_DEVICES": "0", + "ROCR_VISIBLE_DEVICES": "0" + }, + "timing_limits": [ + "Each process loads one model and benchmarks eight requests: the original two prompts repeated four times.", + "Each process includes its own initialization and first-use effects; no warm-only native leg is inferred.", + "Native metrics aggregate all eight requests. Oracle comparison uses all four two-request legs; retain their cold/warm breakdown.", + "External process wall time includes monitor polling and process startup/teardown. Subtracting benchmark duration is not an isolated startup-latency measurement.", + "CPU ps percentages are process-lifetime averages. The operator checks contention; the driver records these snapshots.", + "Same-binary A/B numerical ratios do not establish a cross-oracle performance floor or trace parity." + ], + "monitor": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "stat": [ + 66309, + 4604443, + 9737, + 1789360585533325539, + 1789360585533325539 + ] + }, + "identities_unchanged_after_all_runs": true, + "all_native_output_ids_exact": true, + "oracle_comparisons": { + "primary": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json", + "sha256": "caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040", + "capture_status": "COMPLETE", + "status": "MATCH", + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "mismatches": [] + }, + "llama": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json", + "sha256": "41211f9ee03aeb17c246f52f224a4aa6b719de57dcd4d539fdaef26e503b6c5f", + "capture_status": "COMPLETE", + "status": "MATCH", + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "mismatches": [] + } + }, + "same_binary_output_gate": "PASS", + "cross_oracle_output_gate": "PASS", + "same_binary_comparison_scope": "All six native generated-ID arrays match exactly; these A/B values remain descriptive when cross-oracle output parity fails or remains pending. They do not establish cross-oracle correctness.", + "same_binary_numeric_comparison": { + "Async scheduling enabled": { + "on_median": 0.0, + "off_median": 0.0, + "on_over_off": null + }, + "Benchmark duration (s)": { + "on_median": 8.64, + "off_median": 10.47, + "on_over_off": 0.8252148997134671 + }, + "Ignore EOS (requested)": { + "on_median": 1.0, + "off_median": 1.0, + "on_over_off": 1.0 + }, + "Ignore EOS (resolved sampling)": { + "on_median": 1.0, + "off_median": 1.0, + "on_over_off": 1.0 + }, + "Input token throughput (tok/s, over whole run)": { + "on_median": 165.19, + "off_median": 136.39, + "on_over_off": 1.2111591758926608 + }, + "Maximum concurrent batches": { + "on_median": 1.0, + "off_median": 1.0, + "on_over_off": 1.0 + }, + "Maximum request concurrency": { + "on_median": 1.0, + "off_median": 1.0, + "on_over_off": 1.0 + }, + "Mean E2EL (ms)": { + "on_median": 1080.55, + "off_median": 1308.74, + "on_over_off": 0.8256414566682457 + }, + "Mean ITL (ms)": { + "on_median": 18.75, + "off_median": 18.81, + "on_over_off": 0.9968102073365231 + }, + "Mean TPOT (ms)": { + "on_median": 18.75, + "off_median": 18.81, + "on_over_off": 0.9968102073365231 + }, + "Mean TTFT (ms)": { + "on_median": 796.44, + "off_median": 1026.69, + "on_over_off": 0.7757356163983287 + }, + "Mean per-stream decode rate (tok/s)": { + "on_median": 53.33, + "off_median": 53.15, + "on_over_off": 1.0033866415804327 + }, + "Median E2EL (ms)": { + "on_median": 666.34, + "off_median": 898.86, + "on_over_off": 0.7413167790312174 + }, + "Median ITL (ms)": { + "on_median": 18.63, + "off_median": 18.63, + "on_over_off": 1.0 + }, + "Median TPOT (ms)": { + "on_median": 18.66, + "off_median": 18.78, + "on_over_off": 0.9936102236421724 + }, + "Median TTFT (ms)": { + "on_median": 386.51, + "off_median": 617.09, + "on_over_off": 0.6263429969696478 + }, + "Output (decode) token throughput (tok/s)": { + "on_median": 14.81, + "off_median": 12.23, + "on_over_off": 1.2109566639411284 + }, + "Output token throughput (tok/s)": { + "on_median": 14.81, + "off_median": 12.23, + "on_over_off": 1.2109566639411284 + }, + "P99 E2EL (ms)": { + "on_median": 3755.76, + "off_median": 3973.57, + "on_over_off": 0.945185311948701 + }, + "P99 ITL (ms)": { + "on_median": 19.12, + "off_median": 21.04, + "on_over_off": 0.9087452471482891 + }, + "P99 TPOT (ms)": { + "on_median": 19.53, + "off_median": 19.12, + "on_over_off": 1.0214435146443515 + }, + "P99 TTFT (ms)": { + "on_median": 3440.21, + "off_median": 3687.62, + "on_over_off": 0.9329079460465016 + }, + "Prefill token throughput (tok/s, in/TTFT)": { + "on_median": 224.12, + "off_median": 173.86, + "on_over_off": 1.2890831703669619 + }, + "Pretokenized prompt admission": { + "on_median": 1.0, + "off_median": 1.0, + "on_over_off": 1.0 + }, + "Request throughput (req/s)": { + "on_median": 0.93, + "off_median": 0.76, + "on_over_off": 1.223684210526316 + }, + "Successful requests": { + "on_median": 8.0, + "off_median": 8.0, + "on_over_off": 1.0 + }, + "Total generated tokens": { + "on_median": 128.0, + "off_median": 128.0, + "on_over_off": 1.0 + }, + "Total input tokens": { + "on_median": 1428.0, + "off_median": 1428.0, + "on_over_off": 1.0 + }, + "Total token throughput (tok/s)": { + "on_median": 180.0, + "off_median": 148.62, + "on_over_off": 1.2111425111021397 + } + } +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-workload-eight.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-workload-eight.json new file mode 100644 index 000000000..68f569bdc --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-gguf-workload-eight.json @@ -0,0 +1,98 @@ +[ + { + "conversations": [ + { + "from": "human", + "value": "The following words form a short reading exercise. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. Continue with a short sentence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "Read the sequence carefully. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. Name the colors in the sequence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "The following words form a short reading exercise. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. Continue with a short sentence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "Read the sequence carefully. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. Name the colors in the sequence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "The following words form a short reading exercise. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. Continue with a short sentence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "Read the sequence carefully. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. Name the colors in the sequence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "The following words form a short reading exercise. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. hello world one two three four. Continue with a short sentence." + }, + { + "from": "gpt", + "value": "" + } + ] + }, + { + "conversations": [ + { + "from": "human", + "value": "Read the sequence carefully. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. red blue green yellow orange. Name the colors in the sequence." + }, + { + "from": "gpt", + "value": "" + } + ] + } +] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.cpu-contention.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.cpu-contention.json new file mode 100644 index 000000000..1849891b2 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.cpu-contention.json @@ -0,0 +1,15 @@ +{ + "ps": { + "argv": [ + "ps", + "-eo", + "pid,ppid,stat,psr,pcpu,pmem,comm", + "--sort=-pcpu" + ], + "exit_code": 0, + "stdout": " PID PPID STAT PSR %CPU %MEM COMMAND\n2403385 2403178 S 16 97.5 0.0 python\n 723829 723821 Rl 15 7.0 0.2 agent-8e55cc8\n2403178 741641 Ss 18 1.2 0.0 flock\n 5238 1 Sl 33 0.8 0.0 mintreport-tray\n3810237 1831498 Sl 9 0.8 0.2 2.1.260\n 741641 1 Ssl 10 0.7 0.3 codex\n1843130 1831498 Sl 10 0.6 0.2 2.1.260\n2452314 1831498 Sl 16 0.6 0.2 2.1.260\n4059929 1 Ssl 9 0.5 0.0 tailscaled\n1832713 1831498 Sl 39 0.5 0.2 2.1.260\n 1855 1 Ssl 29 0.4 0.0 OpenLinkHub\n1852369 1 Sl 5 0.3 0.1 zellij\n3809533 3809532 Sl+ 21 0.3 0.6 MainThread\n 324 2 S 15 0.1 0.0 kcompactd0\n 3520 3464 Sl 21 0.1 0.0 cinnamon\n2286681 2286667 Sl 23 0.1 0.1 MainThread\n2286632 741641 Sl 23 0.1 0.0 npm exec @autom\n 2660 1 Ssl 39 0.0 0.0 redis-server\n2286667 2286666 Sl 45 0.0 0.0 MainThread\n1564708 1564691 Sl 21 0.0 0.1 MainThread\n2353934 2 I 21 0.0 0.0 kworker/21:4-mm_percpu_wq\n1551123 1551112 Sl 22 0.0 0.1 MainThread\n 15 2 I 2 0.0 0.0 rcu_preempt\n1777113 2 I 16 0.0 0.0 kworker/u192:2-atlantic\n1700056 2 I 15 0.0 0.0 kworker/u198:0-flush-259:2\n2163407 2 I 17 0.0 0.0 kworker/17:2-events\n 358 2 S 22 0.0 0.0 kswapd0\n1564334 741641 Sl 3 0.0 0.0 npm exec @autom\n1551072 741641 Sl 43 0.0 0.0 npm exec @autom\n2347605 2 I 39 0.0 0.0 kworker/u198:5-flush-259:2\n", + "stderr": "" + }, + "loadavg": "1.81 3.73 6.14 1/3087 2403415", + "sampled_utc": "2026-09-14T04:56:39.620244+00:00" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..a1ac2edb5fbb35e38a75a37774b09e8a0e8b9a4d GIT binary patch literal 2426 zcmV-=35E6_iwFP!000021MQpNbK5o&$KU%`aP-odyHdj9H{7R8+q=1$bJ|PN-b0$< zfFxw;Op!d2QtZp*f4>DOJF?{w*ft%>tuhnaT#^f5@xkH?g8VRX8&`Idi)hkzw&^Bc zMHAaxZP4&`;>wLbj@SO@Pj8Y}-+yzN{OiXTFW)5pzPxa|o zo(kK!wwwL;y(^iBc^Y@_rW;)3wzIA4;@WnL@t$mM>&`XpthC*7<6@f*b(y`dn(Lyn zdF+-~i*EX#wkn5m%JnL)n`%{etvBewx-9E;7Z<*!tVv zybXc9>3yfR%N8z=yXxANeGvlar=ruM%C38}s?e6}p!n0*Q zt#2PR#FtZirbcXwn%?`2KgxhxB#<|-pvp)PYG|aNXw(Tr$R=x3OD{MGLlRpFwc%3nu6 zy?SvOEz7J}=dO)xfg=i$t;#k^Z=Su$(*4T>=VIjmYVT>SP zjG{O|_{T3k?C8Tj#rN&$|H2N>-OaWaw=-^1_rr*C!Z;}3yFf0#VJp+T4FEd~m$oWcNMy$ko)Zlm4CB9tvsp4+l(zm70pH7<`Y}V# zH&vbp?PTQh*VHk`Ulr zXc7V(6qiy9MT{n#8Y#vB4#x!?aDr4s3Hk_BARvqcNkW(h9h_l55!i(SgOY_FhFuY@ z1q;BAA)tz()Izt$a7>1ySf@v39c!wnF?*A}*`jxE1ldOwV zVV!HksW2hdCCYJmm~{Y#O)*+3U?|ebNYvSJQKz`jAj-%+{ei8JKqwEP9(3?bP!~!O z1On)Wpg~qP!=veqhHX zx#l{kV1f>w5$e+5-2CfNr%z{fdMc;`SGbZ4Nf_)jN$FwKDFbCRmFNzY5gVD+#gS1L zniEcpd`zlf9Mzo&3YegSKM(3pi*<73!v#P|KX$%1^xH^>6xqrSQn1aKkGeHH%jE)_wfsm1; zt0R-H32oogTuUeT2kghldl=E5>&Xph|Q8!24HUg>v zR~6(DsT}7fsWDv#H;+ON&ZwUX>IA!riV*5r<6L|gb%Coh1zx`}6zhtO+&?<{4k;0L z`t1R!ASBZxvUys#n`t3j=WXM8D&N@woj_! z0+-Izk+(|ycBb-@>oKWbNL9{HhmB31g_#8JCh^ zf)`^SHvaCrrH@eEC*L(q)%Z%j{jO=sDq`=VmsQlRv&CH~FQPAJ{?FO=rdf-qwMkPI z#k&4-^6@eL+t2XoebXoCYuj{7TO?JJxSM4+d=Pqa@2{i4{Y@|R!qcxhB6ue=02rnt zB?F69OyDXw08r#>1m9>yK=YAXsPOsrPy^)uaVh<+Ulcw4l?4;0vdR?T-)E75$K*;Y z!^vSrfeBn=N~5IGLOxt%VpmNbbpAKrUtYd=`EByI7ytO@ci;9dk%1(ua<>iI!1D0L z<^3UI?Cfl;qv~I``EAS&2r^QOk3A%kfm*{zKY7Ki!35m zcFS^It=p)&4}ARhAAXFypUKYf+kQ*D^SL`qNrrVZdY(ZB+}L?K=b1J}&Qn7x{~YP6@Nx>AB^M%>@Bq sOeiu}G|xHS0G4Y9FbUzHi3;O@BGwRGX9K1!@$rlQ0}{9R#!W^5016Gim;e9( literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.stderr.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-ab-model-on1.monitor.stderr.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..54e2c6994bb661d1912ed9654f1b4784063e0799 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000021D%r5j?^#=Mc?Nu{0K;y&a&(Z4eGa4ZsJZt6FVeMyCdz# zlY$WQhzy$BWEls&d%38;-5I8rTBJue77n=W2`Z5rFQAn2csXA# z;83xWj{k;(4zp6J1EYqG49+Hrqd4qR)+p!ay+JYtMkCqa#Ucs0pD1-{#e7^UB1zS{@n}S7VQNWzz z9eNHz#f6l(N~t}F?3yL8!iS(0_Ft5+h-fayZTCFnE6dKXdnyF#AF?5}+JmT1x+=y< z?&G&(vKqJrzQG>UcZa`%)Aq3H1w&U{kAhF /opt/rocm/lib/libamdhip64.so.7 (0x00007a1018800000)\n\tlibhipblas.so.3 => /opt/rocm/lib/libhipblas.so.3 (0x00007a101bf73000)\n\tlibhipblaslt.so.1 => /opt/rocm/lib/libhipblaslt.so.1 (0x00007a1018000000)\n\tlibssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007a1018756000)\n\tlibcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007a1017a00000)\n\tlibstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007a1017600000)\n\tlibm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007a101866d000)\n\tlibgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007a101a3d2000)\n\tlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007a1017200000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007a101c053000)\n\tlibdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007a101bf6c000)\n\tlibrocm_kpack.so.0 => /opt/rocm/lib/librocm_kpack.so.0 (0x00007a101a38e000)\n\tlibrocprofiler-register.so.0 => /opt/rocm/lib/librocprofiler-register.so.0 (0x00007a1017f24000)\n\tlibrt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007a101a389000)\n\tlibamd_comgr.so.3 => /opt/rocm/lib/libamd_comgr.so.3 (0x00007a1016400000)\n\tlibhsa-runtime64.so.1 => /opt/rocm/lib/libhsa-runtime64.so.1 (0x00007a1015e00000)\n\tlibpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007a101a384000)\n\tlibrocsolver.so.0 => /opt/rocm/lib/librocsolver.so.0 (0x00007a1012a00000)\n\tlibrocblas.so.5 => /opt/rocm/lib/librocblas.so.5 (0x00007a1010c00000)\n\tlibroctx64.so.4 => /opt/rocm/lib/libroctx64.so.4 (0x00007a101a380000)\n\tliborigami.so.1 => /opt/rocm/lib/liborigami.so.1 (0x00007a101798c000)\n\tlibrocm_sysdeps_z.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1 (0x00007a101a362000)\n\tlibrocroller.so.1 => /opt/rocm/lib/librocroller.so.1 (0x00007a1007c00000)\n\tlibrocm_sysdeps_zstd.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1 (0x00007a10178bd000)\n\tlibclang-cpp.so.23.0git => /opt/rocm/lib/llvm/lib/libclang-cpp.so.23.0git (0x00007a1003400000)\n\tlibLLVM.so.23.0git => /opt/rocm/lib/llvm/lib/libLLVM.so.23.0git (0x00007a0ffc400000)\n\tlibrocm_sysdeps_elf.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1 (0x00007a1018651000)\n\tlibrocm_sysdeps_drm.so.2 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2 (0x00007a10178a8000)\n\tlibrocm_sysdeps_drm_amdgpu.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1 (0x00007a1017893000)\n\tlibrocm_sysdeps_numa.so.1 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1 (0x00007a1017f15000)\n\tlibrocm_sysdeps_liblzma.so.5 => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5 (0x00007a10175cf000)\n\tlibrocm_sysdeps_bz2.so => /opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so (0x00007a10175b6000)\n", + "stderr": "" + }, + "files": [ + { + "path": "/lib/x86_64-linux-gnu/libc.so.6", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libc.so.6", + "sha256": "3a15d66867d83762c7f2f1e37359cb8f6c5743edb369c65285cb0b1c4f7498bf", + "stat": [ + 66309, + 33948923, + 2129424, + 1788444912000000000, + 1789112233148602011 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libcrypto.so.3", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libcrypto.so.3", + "sha256": "6a66c3ba6b3749aacc9497973fff00f6ba61c703ba7015d0d7ab3fd9510974b6", + "stat": [ + 66309, + 33949967, + 5309400, + 1787055036000000000, + 1787729381838214134 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libdl.so.2", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libdl.so.2", + "sha256": "c2994527172cc23b7fb0f7d611b71e00a37da27af12c2e5e9e0dc1a742886c96", + "stat": [ + 66309, + 33948926, + 14408, + 1788444912000000000, + 1789112233149602022 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libgcc_s.so.1", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libgcc_s.so.1", + "sha256": "d93224d2b0dab4247598be683adca02f5cf00586f99c187579cd7e92058fb7cb", + "stat": [ + 66309, + 33990458, + 183024, + 1766093810000000000, + 1779083976802023729 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libm.so.6", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libm.so.6", + "sha256": "fce00b6f25f459cf4ae0b7fae4257909a1a8a86f9149e7c029a5d617baf1ccd0", + "stat": [ + 66309, + 33948931, + 952616, + 1788444912000000000, + 1789112233149602022 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libpthread.so.0", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libpthread.so.0", + "sha256": "90491a21ce44efcf3bd4b65ec82501c091d7ebe7f8d9b341dd01d721001d9ecd", + "stat": [ + 66309, + 33948984, + 14408, + 1788444912000000000, + 1789112233153602069 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/librt.so.1", + "resolved_path": "/usr/lib/x86_64-linux-gnu/librt.so.1", + "sha256": "6d072187d88e092e81561a44c03a4a41397319022c6d43519757cc051c576d82", + "stat": [ + 66309, + 33948992, + 14624, + 1788444912000000000, + 1789112233154602080 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libssl.so.3", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libssl.so.3", + "sha256": "8e49cebd373d90b55f3626da71dd97fe8e95c68dc4c064d8962b27907690736e", + "stat": [ + 66309, + 33950037, + 696512, + 1787055036000000000, + 1787729381839214150 + ] + }, + { + "path": "/lib/x86_64-linux-gnu/libstdc++.so.6", + "resolved_path": "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33", + "sha256": "1fd75fe70354a416d75aef22bcae68c47bd25d20e2d0568c30b1a9838cf62f11", + "stat": [ + 66309, + 33991310, + 2592224, + 1766093810000000000, + 1779083978698526498 + ] + }, + { + "path": "/lib64/ld-linux-x86-64.so.2", + "resolved_path": "/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", + "sha256": "c20a2dc8917c755f02b94049356320fe1f62ac7d9f8994731f807d9df39302da", + "stat": [ + 66309, + 33947893, + 236616, + 1788444912000000000, + 1789112233147602000 + ] + }, + { + "path": "/opt/rocm/lib/libamd_comgr.so.3", + "resolved_path": "/opt/rocm/core-10.0/lib/libamd_comgr.so.3.3.0", + "sha256": "ff98e63e6b8677eb51376816f3e1169e377ac446e7bf4c5d247683a72f2f59eb", + "stat": [ + 66309, + 49190269, + 13181720, + 1787272882000000000, + 1787946911196121942 + ] + }, + { + "path": "/opt/rocm/lib/libamdhip64.so.7", + "resolved_path": "/opt/rocm/core-10.0/lib/libamdhip64.so.7.15.26333-0000000", + "sha256": "817aeadfd9f62b68831ad89993163c7f1f470f30595e7e0da5fdc942193142a8", + "stat": [ + 66309, + 49190270, + 28216272, + 1787273088000000000, + 1787946911196121942 + ] + }, + { + "path": "/opt/rocm/lib/libhipblas.so.3", + "resolved_path": "/opt/rocm/core-10.0/lib/libhipblas.so.3.6", + "sha256": "24f0ad48d80c8fbdff8a67c89fccc213fb34210247e85da7161d05e076d7c1ef", + "stat": [ + 66309, + 49190330, + 937328, + 1787272954000000000, + 1787946913690165434 + ] + }, + { + "path": "/opt/rocm/lib/libhipblaslt.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/libhipblaslt.so.1.4", + "sha256": "1e8545626323f9b22c65d36492e1686b831cb85c8f7c8be3fc21c0d6cbb0d055", + "stat": [ + 66309, + 49190331, + 9081728, + 1787272953000000000, + 1787946913690165434 + ] + }, + { + "path": "/opt/rocm/lib/libhsa-runtime64.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/libhsa-runtime64.so.1.21.0", + "sha256": "69cfd3277b627dec1641166600764d2ee4c34bdfc8519e6ffe58a7e0d51bfbc0", + "stat": [ + 66309, + 49190273, + 4895880, + 1787272921000000000, + 1787946911198121977 + ] + }, + { + "path": "/opt/rocm/lib/liborigami.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/liborigami.so.1.0", + "sha256": "33bd6b994fa6ae8eeeecf2d628c18f0eece7bc2bdc9346b7b941073ead7aac65", + "stat": [ + 66309, + 49190333, + 560432, + 1787272960000000000, + 1787946913691165452 + ] + }, + { + "path": "/opt/rocm/lib/librocblas.so.5", + "resolved_path": "/opt/rocm/core-10.0/lib/librocblas.so.5.6", + "sha256": "d05939967b5f1bd184a4b8c1c77509c87a0abae3f0b3d079ba9d68ed1ddc50a5", + "stat": [ + 66309, + 49190334, + 27673472, + 1787272960000000000, + 1787946913691165452 + ] + }, + { + "path": "/opt/rocm/lib/librocm_kpack.so.0", + "resolved_path": "/opt/rocm/core-10.0/lib/librocm_kpack.so.0.1.0", + "sha256": "bb31da3416c89978478bfd45c3ac47d8fef2eebf41ad59ceff351e4c054c1ee7", + "stat": [ + 66309, + 49190275, + 339976, + 1787272901000000000, + 1787946911198121977 + ] + }, + { + "path": "/opt/rocm/lib/librocprofiler-register.so.0", + "resolved_path": "/opt/rocm/core-10.0/lib/librocprofiler-register.so.0.6.0", + "sha256": "7166282aacab9f6c8fdcc28ad884e57b6b09cd4e08aead98b8e862a61010e85c", + "stat": [ + 66309, + 49190291, + 967760, + 1787272961000000000, + 1787946911514127487 + ] + }, + { + "path": "/opt/rocm/lib/librocroller.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/librocroller.so.1.0.0", + "sha256": "0e7f6f32d5177aa04ae0c702f9aabc5d8130e2543b838f2f294786e33c01b469", + "stat": [ + 66309, + 49190335, + 233751464, + 1787272955000000000, + 1787946913692165469 + ] + }, + { + "path": "/opt/rocm/lib/librocsolver.so.0", + "resolved_path": "/opt/rocm/core-10.0/lib/librocsolver.so.0.11", + "sha256": "0d9307c7a5edede2e6ae75e2f7cd5eb8d462da0564a35f4348a89b212c0f323f", + "stat": [ + 66309, + 49190349, + 29471616, + 1787272959000000000, + 1787946914762184128 + ] + }, + { + "path": "/opt/rocm/lib/libroctx64.so.4", + "resolved_path": "/opt/rocm/core-10.0/lib/libroctx64.so.4.1.0", + "sha256": "ffaadd7b4e0e74e01dab93058bd5a2b237b1058e4ac685640c1aec27bd845ddd", + "stat": [ + 66309, + 49190312, + 7608, + 1787272927000000000, + 1787946912608146565 + ] + }, + { + "path": "/opt/rocm/lib/llvm/lib/libLLVM.so.23.0git", + "resolved_path": "/opt/rocm/core-10.0/lib/llvm/lib/libLLVM.so.23.0git", + "sha256": "1f258534e3b14393fb2d65d6cb6a93fac239727cc1df5b698b6d2b51f78a65d9", + "stat": [ + 66309, + 56265502, + 132274504, + 1787272886000000000, + 1787946910488109594 + ] + }, + { + "path": "/opt/rocm/lib/llvm/lib/libclang-cpp.so.23.0git", + "resolved_path": "/opt/rocm/core-10.0/lib/llvm/lib/libclang-cpp.so.23.0git", + "sha256": "0119f76826759e3f0534bb95bcc28e3e788e3a041e47b89310b3d324197b8ad3", + "stat": [ + 66309, + 56265508, + 89897976, + 1787272891000000000, + 1787946910490109629 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_bz2.so", + "sha256": "628d4871ea18e82dcc73b28f45a587f00a7abd4b208b371a713eb2e9d5b95dec", + "stat": [ + 66309, + 49841939, + 104016, + 1787272881000000000, + 1787946905464021976 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_drm.so.2", + "sha256": "f1b274ac80ac1bcd241d70e1f13f9586e3fc83545a357b312890c1722ca68dcf", + "stat": [ + 66309, + 49841941, + 360336, + 1787272882000000000, + 1787946905465021992 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_drm_amdgpu.so.1", + "sha256": "78c1af14962d9ee0e43602d422eb8619b6c825a9b7c8f532308ea1f4108a466f", + "stat": [ + 66309, + 49841942, + 251416, + 1787272882000000000, + 1787946905465021992 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_elf.so.1", + "sha256": "a51543f71efce0c552ae606fe103b6e4fa4f6b283ba48a762f6d57b880401832", + "stat": [ + 66309, + 49841944, + 1198616, + 1787272881000000000, + 1787946905466022010 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_liblzma.so.5.8.1", + "sha256": "15402b36e2fdb0762e0b6590c3470fccec5e80cc8010c84ac4835573d592c02d", + "stat": [ + 66309, + 49841950, + 218464, + 1787265597000000000, + 1787946905468022045 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_numa.so.1", + "sha256": "333b980e3f706f7196c73a33967c7979e9fd47b6d5f5f51ed3990142ef4142cb", + "stat": [ + 66309, + 49841962, + 219056, + 1787265597000000000, + 1787946905473022132 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_z.so.1.3.2", + "sha256": "27361c0c552d2afd5ecf9079f356309ed827e9a27d35f2fc68c7b5e6b5c83199", + "stat": [ + 66309, + 49841969, + 129576, + 1787265595000000000, + 1787946905476022184 + ] + }, + { + "path": "/opt/rocm/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1", + "resolved_path": "/opt/rocm/core-10.0/lib/rocm_sysdeps/lib/librocm_sysdeps_zstd.so.1.5.7", + "sha256": "5fc4ab0e6899318ece9bea43d3d397d20053418a5e40cb6bc86efe19a801c75e", + "stat": [ + 66309, + 49841970, + 879168, + 1787265600000000000, + 1787946905476022184 + ] + } + ], + "scope": "ELF dependencies resolved by ldd; runtime-loaded kernel objects remain in runtime trace evidence" + }, + "revision": { + "argv": [ + "git", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "c3fe98ba6c55ce71e75746e1b944a27640464e0f\n", + "stderr": "" + }, + "worktree_status": { + "argv": [ + "git", + "status", + "--short" + ], + "exit_code": 0, + "stdout": "", + "stderr": "" + }, + "model_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text", + "model_inputs": [ + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/config.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/config.json", + "sha256": "3f519a65a220e7637dbfae800f2b94b907a63c84cb85993acdeebda47a63824c", + "stat": [ + 66309, + 4601163, + 1875, + 1789359769692535695, + 1789359769692535695 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer.json", + "sha256": "5f9e4d4901a92b997e463c1f46055088b6cca5ca61a6522d1b9f64c4bb81cb42", + "stat": [ + 66309, + 4601167, + 12807982, + 1789359770215962238, + 1789359770215962238 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer_config.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/tokenizer_config.json", + "sha256": "316230d6a809701f4db5ea8f8fc862bc3a6f3229c937c174e674ff3ca0a64ac8", + "stat": [ + 66309, + 4601168, + 16710, + 1789359770331290412, + 1789359770331290412 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/model.gguf", + "resolved_path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "sha256": "00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4", + "stat": [ + 66309, + 119839892, + 2740937888, + 1787995127572958838, + 1787995129132981824 + ] + } + ], + "inherited_runtime_environment": { + "HIP_VISIBLE_DEVICES": "0", + "ROCR_VISIBLE_DEVICES": "0" + }, + "timing_limits": [ + "Each process loads one model and benchmarks eight requests: the original two prompts repeated four times.", + "Each process includes its own initialization and first-use effects; no warm-only native leg is inferred.", + "Native metrics aggregate all eight requests. Oracle comparison uses all four two-request legs; retain their cold/warm breakdown.", + "External process wall time includes monitor polling and process startup/teardown. Subtracting benchmark duration is not an isolated startup-latency measurement.", + "CPU ps percentages are process-lifetime averages. The operator checks contention; the driver records these snapshots.", + "Same-binary A/B numerical ratios do not establish a cross-oracle performance floor or trace parity." + ], + "monitor": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "stat": [ + 66309, + 4604443, + 9737, + 1789360585533325539, + 1789360585533325539 + ] + }, + "error": "on1 monitor/benchmark exited 1", + "error_type": "RuntimeError", + "traceback": "Traceback (most recent call last):\n File \"/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_ab.py\", line 209, in main\n raise RuntimeError(f'{label} monitor/benchmark exited {completed.returncode}')\nRuntimeError: on1 monitor/benchmark exited 1\n" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..769c2f471b957c611613fc6219bdd02b747928c3 GIT binary patch literal 12309 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 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.stderr.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.stderr.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..644538f724e9830b6bcd8fad7d351b12823b5757 GIT binary patch literal 1235 zcmV;^1T6a>iwFP!000021MOJfZ`(Eye$QWVZ%u$n*6$x4{Ll>>78GmO4O<_EK%k|Q z%~>Kfl5*o>fBcS=ojA$dtt|%lAqEVG5_$LCci)j0z6;7QhA5f`@jOcXI4h$h1p4Mt z9E0Zl&|zhGkIJuyVVoD?_k!}U*aS<8Ol9jYtXqSDrG?uV%#+Eo(-Wd-4DEt(|Ngl?)E#JdOOWi zjbO3&zVF#=Ir6SKdf>?c6*E%J@RnKY+AZ^zDC#wMUN0N$;DK59NYCEBM-ls}mwe;B zO{!PbkKQPBC(YW!B5%VyOZ?SpY{^E$4AW@5ftmF~Q&O?I!`Ts>jv3Tu#u_#l;%p{J zOI!2|O+-(&?d-i&n@+OEL%v!Y{|`;9dY%}2k4WeTqoJTN7sF`04h2MMMq@de!-LR{ zYbokcDGG82p$(JWIvY!7>NPf=ksA~mQWEE6eA&r*qk&}Xc?Nq&+Ncl$8f&C9x<592 z@ai=)Zi)@XLRkr^&_k*3aX9lHZ}b<_@z|gv=0S8{h<}baVntCICA)54jA0&7HM&=%KSEgJU~ZtnEhl_E z_EPOYak282W80zvg)~_k63=opU~8Cn^x8e=3N`2*z3mT6uMalgS{GkK%Q`oG$?6U5 zIge&rN6<WP({EVb-G5B<+-yC!@IbWV7&<9dlu|1R zyfywq{S-b`Pg<1E`f>Vs#7z{$c@aKyiZQceGV2Ddb3K?Wr_6NL)k1HCuMJ zcd**O+gwdG9bdGoJs~+OLW|9jT;$IJyyGSb{XC7rGaxPjkApNIMcFRv zyGPo}@*=<2*1j#$Mj@N(JPfJm-V7)xI#TG^89JgmoPROqynM=Y^OW2U)vYrqfL4aTy$4VVxW9 z(|o6i#d{vOUGG(K(aIB0lj2;;uaQ0DAJaohTidztI@zE4h==WH?q_)rA8o<^+Kx_< x0A?LHpgyiQKCB>lt--j<6e*Spq99H+T+@;3$WFqlRb008RgV)_68 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..dc06cf27443b8647d6f268453f179529dae3c988 GIT binary patch literal 691 zcmV;k0!;lMiwFP!000021D%ykZ<|06hVT4}k$SPEdc%T?O{5(9;Yd~;B}!258yI6` z*rmIRleEfz?_z@i$5^O)@(0hn^Ulr;)=m4sE=@BM<~e*r9&R!wxA2InNHuhxvlcu~ zIKo;Au8~LA(0{(FHy*B5cjaem{{>XI!Kg?R9s_droZ`6vcI&hCAW@4g^5hRjkV}!} z8d#JiN+p7KVcO7It}p2| z%^DSwY10xgQa!ie64$M{Kxmdi!t=rurEIU>G=WZ?W2zMwBS)iVN_>H(4F=X@*sdf{6=8`F`ZW*IwAn7@C;@kBO@cn^u;Lg1nq4qg9IZCMNdGIsB z*DxhORaM~esl$i+0g|pm=KisdD~AI}*Cq7G?Hvx1gDE9;-C2#prP;=Ea=7r7X-zXY zCvKL(YDoRgxEVq^CM&n?W|*9rE}J;cshb6ljF*Xdzx0?{IEw+{spolQHtU!fLYk&E zO*CuF43jfg<9nnU`^JoUgRPS^g`I*Q7>Wo%nPqQ=F)lapC)#SeCBHE3pF!+Q3%_hc ziXaPalA-pD*nab--0Sq>3BM|*sN}vlggV_FGm7@fjW2DD&W_n%gc+)d(h^w)2Oi4B Zc)Dm@n@nray7`Y|{R8)W&ONRO008naP!<3H literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-output-token-ids.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-output-token-ids.json new file mode 100644 index 000000000..a8ff7e3f1 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-output-token-ids.json @@ -0,0 +1 @@ +[[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700]] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-recipe-and-result.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-recipe-and-result.json new file mode 100644 index 000000000..8540a7ec3 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-recipe-and-result.json @@ -0,0 +1,550 @@ +{ + "status": "COMPLETE", + "arm": "off", + "argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "--arm", + "off", + "--output-dir", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off" + ], + "adapter": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "sha256": "f8c131d1fbcbaf9e54b8a34756e1d7cd4ea2692b7a9ee3b01f671be958529c7b", + "stat": [ + 66309, + 4612152, + 6603, + 1789361971099973393, + 1789361971099973393 + ] + }, + "phase": "complete", + "binary": { + "path": "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "resolved_path": "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "sha256": "ae64e829a31ff62b3b1dac2a56b35ec8fdb449ee681b8f62aeab2c432583b902", + "stat": [ + 66309, + 4601425, + 32315864, + 1789360008243853412, + 1789360008245853428 + ] + }, + "model": { + "path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "resolved_path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "sha256": "00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4", + "stat": [ + 66309, + 119839892, + 2740937888, + 1787995127572958838, + 1787995129132981824 + ] + }, + "profiler": { + "path": "/opt/rocm/bin/rocprofv3", + "resolved_path": "/opt/rocm/core-10.0/bin/rocprofv3", + "sha256": "2d220ded2167097e480e6866a916b575548d56bed8a823a4e505f7133868f0a6", + "stat": [ + 66309, + 52593259, + 95727, + 1787266423000000000, + 1787946912530145205 + ] + }, + "profiler_version": { + "argv": [ + "/opt/rocm/bin/rocprofv3", + "--version" + ], + "exit_code": 0, + "stdout": " version: 1.3.5\n git_revision: 6b0e43f341195e203754e08f850e437ff2fc09f9\n library_arch: x86_64-unknown-linux-gnu\n system_name: Linux\n system_processor: x86_64\n system_version: 6.12.73-95.123.amzn2023.x86_64\n compiler_id: Clang\n compiler_version: 23.0.0\n rocm_version: 10.0.0\n", + "stderr": "" + }, + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/vllm.cpp-rdna3-wmma", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "6e65c6fad158c7d2e7cd2f583c6b50e1ab694cbf\n", + "stderr": "" + }, + "original_dataset": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "sha256": "4cab7f33eef255088ed38506aedb5750f3dfc0201a5c86459b385a1f5430468b", + "stat": [ + 66309, + 4601165, + 2042, + 1789359425030664149, + 1789359769692833552 + ] + }, + "expanded_dataset": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/workload-eight.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/workload-eight.json", + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777", + "stat": [ + 66309, + 5803280, + 8159, + 1789362203275230578, + 1789362203275230578 + ] + }, + "original_record_index_for_request": [ + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1 + ], + "rocprof_tmpdir": "/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-off", + "traced_argv": [ + "env", + "VT_ROCM_QUANT_WMMA=0", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "ROCPROF_TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-off", + "TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-off", + "/opt/rocm/bin/rocprofv3", + "--hip-trace", + "--kernel-trace", + "--memory-copy-trace", + "--memory-allocation-trace", + "--marker-trace", + "--stats", + "--output-config", + "--output-format", + "csv", + "json", + "--output-directory", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof", + "--output-file", + "native-off", + "--", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/monitor.jsonl", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "ROCPROF_TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-off", + "TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-off", + "/opt/rocm/bin/rocprofv3", + "--hip-trace", + "--kernel-trace", + "--memory-copy-trace", + "--memory-allocation-trace", + "--marker-trace", + "--stats", + "--output-config", + "--output-format", + "csv", + "json", + "--output-directory", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof", + "--output-file", + "native-off", + "--", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/output-token-ids.json" + ], + "trace_scope": "unfiltered HIP API, kernel dispatch, memory copy/allocation, and ROCTx traces; no hardware counter or ATT collection", + "interpretation": "trace overhead changes timings; use these runs to identify executing paths, not as the unprofiled performance denominator", + "gpu_busy_percent_before": 0, + "exit_code": 0, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics_with_profiler_overhead": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 13.33, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.6, + "Output token throughput (tok/s)": 9.6, + "Total token throughput (tok/s)": 116.69, + "Mean TTFT (ms)": 1173.41, + "Median TTFT (ms)": 628.9, + "P99 TTFT (ms)": 3867.1, + "Mean TPOT (ms)": 32.89, + "Median TPOT (ms)": 33.19, + "P99 TPOT (ms)": 41.08, + "Mean ITL (ms)": 32.89, + "Median ITL (ms)": 21.03, + "P99 ITL (ms)": 140.22, + "Mean E2EL (ms)": 1666.77, + "Median E2EL (ms)": 1177.17, + "P99 E2EL (ms)": 4196.28, + "Input token throughput (tok/s, over whole run)": 107.09, + "Prefill token throughput (tok/s, in/TTFT)": 152.12, + "Output (decode) token throughput (tok/s)": 9.6, + "Mean per-stream decode rate (tok/s)": 30.4 + }, + "trace_files": [ + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_agent_info.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_agent_info.csv", + "sha256": "90f47b57110e910cd39ed10f58a95a8f16bd1dadc12bb286363a2014e0ea9f40", + "stat": [ + 66309, + 5803312, + 2126, + 1789362223753687714, + 1789362223753687714 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_config.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_config.json", + "sha256": "0c862c5b972d4a2080faa9b6eef553337dbf4433584c381664bceb182bac9fca", + "stat": [ + 66309, + 5803292, + 15455, + 1789362221767666862, + 1789362221767666862 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_domain_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_domain_stats.csv", + "sha256": "9a54d2a0a5de6d3b3168c827778313f4fdd5c0477821ce3d8d38e11863c5d460", + "stat": [ + 66309, + 5803315, + 404, + 1789362223754481782, + 1789362223754481782 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_hip_api_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_hip_api_stats.csv", + "sha256": "738b593100573d87adf8531ed9abfa1a051cdac12efeada2be1fbde075144849", + "stat": [ + 66309, + 5803298, + 2556, + 1789362222246671892, + 1789362222246671892 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_hip_api_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_hip_api_trace.csv", + "sha256": "50d89a6b8b6b1196dd69eca82c6e089a8cc7368ba7a219e0153a340b3e81ff07", + "stat": [ + 66309, + 5803301, + 73486489, + 1789362223680686948, + 1789362223680686948 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_kernel_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_kernel_stats.csv", + "sha256": "f06583731c584c0ed882acc85d62465573eacbaad0b6f9315fa966978ea3ea0d", + "stat": [ + 66309, + 5803294, + 7789, + 1789362221815667366, + 1789362221815667366 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_kernel_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_kernel_trace.csv", + "sha256": "c71218ced6337322e7f37ea6e699184afb6b8e83c23a454ab7cd307edbb4e30b", + "stat": [ + 66309, + 5803295, + 28695541, + 1789362222082670170, + 1789362222082670170 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_allocation_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_allocation_stats.csv", + "sha256": "53726687c1b93bfe9f9ac9b6964ec03ea0c9e9e078a2d335fe26b66787943c24", + "stat": [ + 66309, + 5803308, + 351, + 1789362223737687546, + 1789362223737687546 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_allocation_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_allocation_trace.csv", + "sha256": "955c58c3ffffdc33cabd8a5f1a41daa0b2822c9dc29348a5fa77daab9fda1796", + "stat": [ + 66309, + 5803310, + 157890, + 1789362223750687683, + 1789362223750687683 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_copy_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_copy_stats.csv", + "sha256": "26de138cf4b822f804dfdd8b4c9e2f26489a59e236e229e33f568d9fe2d43bd3", + "stat": [ + 66309, + 5803304, + 174, + 1789362223697687126, + 1789362223697687126 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_copy_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_memory_copy_trace.csv", + "sha256": "3d3a78e61c385ed1fc152cb96a36456fecb69a6625d85963cefb2a9eb1f4164d", + "stat": [ + 66309, + 5803306, + 30363, + 1789362223702687178, + 1789362223702687178 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_results.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_results.json", + "sha256": "7e89096ff9a0901587f01a0370fbbe03f32cce82d051ff2b37b51644dcee0fe6", + "stat": [ + 66309, + 5803316, + 379845005, + 1789362227655728665, + 1789362227655728665 + ] + } + ] +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-rocprof-native-off_kernel_stats.csv.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-off-rocprof-native-off_kernel_stats.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..c7dd47fa043a856080e93d2a412b08de6a3cb623 GIT binary patch literal 2310 zcmV+h3HkOPiwFP!000021I1ZuQ`<@s{hnVz@rk6gQ`7SvDwQgmBy0+t3y8-@m0~O4 zjV-Z$5bpl^Jw0-O7>EtYO(>T}l7%$gbNci-^5(~KTy18XJLPCJ#dzGz%F)~Tq?`?# z`Xis|Tve0uyh{5A)udn5GaTZeH*7EHmDg#^XM?xZ)#i)Mt7bUZxSDNmPn!OCdwZ*_ zoBHo@GoNnMc-Zu^>{l88d^#Qf=m_JmzCCw$f7I0Hk8jg|zue5U^eR(I2c?x!HuEajNJ0feL1xMc=`*7P z_Pq%ttyexHZKKj&3h#`wYTcCX9nQ;owp)$Id#~s9ba-A@gN^A$Gnr)@>dn^orx3u+ ziT*`7xe1FO)4!Z=Z+Ayc|I1-0_I?oY%`F~0yxk%ZN`{b;4}@T&rYu-Z)(S^KMT>8R zw;54z5?L|QM@!CS)+0^E3ME~T?m3A_>yT~8H(TG<^Y?}wD5{K%A?1xT5gD*iI}r>5 z!WT|>K4*;N-~o{+ktG+1q7*=dxAIpkzx?CNAFOwovmszz1IoY!WreiPTAg{}Pz2;; zrjad+yeK5cN@0;Ti3IEn|MR8jjD}x|?g)F`JTJQcE_%nL!nIb{t}Hse zPA-e?KH)Md-W}jzcmMRPLuu$@I66JUHb2q4>GZnAhrA=DEIyo2v4_uoUhH@CgM*H2 zN8EHj9i+YV-@Ol=Q(5$S@AIAF6s~xk3*q~V@z2VCp`?E#fV3os^^I#D z>0saZ=ld@6w0`wiFIvAZJ$1W?X)%0ino)Y%VsrOfWSyik8AuFuu9ZVIdugH|5FcQt z1+b<_E7Z5~pnXD}n;4uGhRBBJ5ZzAGTpqd`mJh#;08>(f@EWoNTqrbZ(Qyan3nVePT@d7T zjBCrTqw$ns$`D8KRIJKEBB$a1s>6`jsbVj6Rqbuvryk}bPV8NBYH!`?&)y!dq@=WY#nM_i>$0E? zX`kvP5Y#jo>oX~$C&+6BS?v^LXr_&XvXl{PyY9k%y~-~~!`WUw9=%3uzoq}%&Ce{} ztJ@oKFzkgO{~-G@Tjhgy0@~4oA`pybs&#}_)6j^x5H2Y=C~EaYlpZx-_o_)}QUF)r0oZ=>AgZ$aW9kpj#RZcc3vd2vcDcMsr{J zcNfavnQMHYta~5GT`xXG{;_odbl(NE^1l;W7Z8#Q2y6h773k#21+XTD4N$EO=qzji zB3KxKw0F?q4Q`RFfJFo*m^-gp7YPJrM9RH0idKnp9d7;%fo zt$=E+Kbu4K&Rn z?|H$^lbzDSRS*n?WFv>I5u_zdJ>ScC$u5GOyECkFlz@=-!LEy{UQ^}6(Y!Ywtr9m6 zH{Bm}OhC}c=(33LB1DDKk(DTzJxv`|!uFi`#3C08{#=kH&EQ*a?mOjtT8>y^(BR~9 z@Ss5ZGtKZJnq5;(EE;7ZJ*mL4lzAqe;mO0YI;##R-JmV zQ}!>aW$Y~j?`ASOVn8qX7xHkK~ z8-J<>gJFH%7GycQs3r?>v|Nx&qT`VpzWwi^EB4l|-F0Ybsbp`b@crc9O(xCc)s5_c zieQ*nc9vv<(aiZ$a}7f?g4%RIzd}7*R3y~1iFXzLPC1=*Ka<;A)pZ_QFBKJpD->(6 zFjLy1xu)l{uuZk@JP;cqGbg0`+6$Hs&&Rm1eHri*jj^318e%|Ef#WrDNe!jOiv)*7{BoNDzw)*eJZuQSY52wzVxl_!1t7@| z8-;>d(dH??9nBE?0;#Wm_=0T}0j&n#f^?7<7OGjmT*2B3KDiA?WiCmFpm<%u=fW!m z|NPW&@_sp+Jt>|a&ljypf*CwovWO5mHi4fofFk&vr~_q?gh8-IMY}fo_&wBuGclRl zdETE{VvBZn(9A!Ls#W8na7k-QKNm?IqaaRon`>*qactQwM*w1H_Xn=m&xOvi5L@x; z=9huVvwDCT_udOciUr7mFveH^lCVIMEwEuim*6EMZ8XmY(@LrNOn5oc&hR_l$iHDK gG^5P36G#y#mnP3G*c+IR2qu28eoW_ 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 literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.stderr.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.stderr.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..c45ca2f768ae38ae912413095de499d96b76a419 GIT binary patch literal 1236 zcmV;_1S|U=iwFP!000021MOJfZ`(Eye(zs#Z%u$nCaK>Z{Ll>>RupU34O<_EK%gbs z<}8sKNx5;cKYmBbPMoAE))oW&5W|2&iM;#nyYI*g-;s(Yz}TG7d78u|OIex%OG%X_ z8Ccm5ov5Acg^8PCm}l7){AqME7`@shSKzenKq~1Z@8k#Wq*gGWga4425JoaIBARFK z9=NIU&BFxJ~GVw%O|)|+VILMrRHYQ%zEKJZag zIZHq3!;H#@_QftJOB0em>f*N-H->4<=;s(t5|(^M8lKNKx)-yZ+;Y2_?Yge_(<0L< zo<#5ap3jz}?AntDksgHMPMevy=H9vu%c7-F%?6^V*RAN_j@j_Y&fdNkDv7fw{VsZ& z*01WHqfyyTyGwOkCI;p8%yq*jc6mMw?bLSC_5NmcDmVG$Wt6U(Fe{(BY@!83d~~oV=ITK z*>D%8_((jIwbDjJLfcy$!F(iJ`?YM`w-@+$ep-3{6DsdEtMji)r%-FD1pEU?OMT#c zQ9@w6MuHcf@d;NLBHt%$FDQ7r76d#+3y%;E@>u*2%GmDehGRzS*6jze;G@$pC8WlL zAQ+#m`k1YSPv9Wh2US=yN~@bH{CgCms4*yKbk`j!kro6?F}yo$?+8}f0ACB`fD)1xS&~*+US>Igi@`{3q}u~mEqwnw>fdf*g~2i>oz_fjI!4|@$BX6AK!paWpIb3TL-&dZFBVAjtx2w!LXcB zJjHM!BWdY>{R)rd)gKUq0T)=(hvL45guzt#mofaxr4@Ipe}=>DE(!~eOb3#o(`t=5 z^_mdZF1{yqLGN-HzESGuyB*9y9vLa?_Sta>XoAuOYeLBMgmrx~6P^uITq yQyhR<@?Fu%1#2GDlvcF3cfopeQe>ZdkGqoU!7Z+L!jfWYa{dKKn^5yD761SwC1VT# literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.stdout.log.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-monitor.stdout.log.gz new file mode 100644 index 0000000000000000000000000000000000000000..ffa45d343a3742127c0c0b9a51ce7ff166eb538b GIT binary patch literal 690 zcmV;j0!{rNiwFP!000021D%!MZ=ygD$KUxYCb<_)&aHqbH0i_ru!%Vvo0i=B7Dgn( z!tE}$z03XYH&{?mG353MkY&Ry4M%=E`sIqp?o&>KR^W=42vWd5uo5N30?{?Zaf>05_Psk5&y;za+#&M z1|FudQgJ5Qu-W8({Dgp$8ie{iM;J)_RiM%s4$l;Mp|cC$t1Q`(rqY?@5jL=wwK+8w zk;o*%eD!=a_E}zSuGZjbUKXXzx43T`u0bPx$2DH7I)K{7c}`IWlD}3Z8@74azH%9< zjxc}z8V~#}PKy+ROaz6LC^WoqP31XfT3J39L4ZoFiv+5obcul5zEb@YiQnpuTnqW?>L#h=Qp+Hij5?^7>BL>D(OYMKZ5qLIg#_o(^MFPU25yqwN;r%4z=$*^XNHb(19s zvJjLE%@}6SjyL6ArxTCGO?irlv&J(v8@Ff7AlxT6yf!sjGiJXLbf`v3OXMkh@K6rM Y(?LUNT9cZ)`;TS(10||~ZLSCa0F6;hE&u=k literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-output-token-ids.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-output-token-ids.json new file mode 100644 index 000000000..a8ff7e3f1 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-output-token-ids.json @@ -0,0 +1 @@ +[[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700],[271,248068,198,90700,8340,25,271,16,13,220,2972,2014,53983,279,5952,64700]] diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-recipe-and-result.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-recipe-and-result.json new file mode 100644 index 000000000..59835b1ab --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-recipe-and-result.json @@ -0,0 +1,552 @@ +{ + "status": "COMPLETE", + "arm": "on", + "argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "--arm", + "on", + "--output-dir", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on" + ], + "adapter": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/run_native_trace.py", + "sha256": "f8c131d1fbcbaf9e54b8a34756e1d7cd4ea2692b7a9ee3b01f671be958529c7b", + "stat": [ + 66309, + 4612152, + 6603, + 1789361971099973393, + 1789361971099973393 + ] + }, + "phase": "complete", + "binary": { + "path": "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "resolved_path": "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "sha256": "ae64e829a31ff62b3b1dac2a56b35ec8fdb449ee681b8f62aeab2c432583b902", + "stat": [ + 66309, + 4601425, + 32315864, + 1789360008243853412, + 1789360008245853428 + ] + }, + "model": { + "path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "resolved_path": "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "sha256": "00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4", + "stat": [ + 66309, + 119839892, + 2740937888, + 1787995127572958838, + 1787995129132981824 + ] + }, + "profiler": { + "path": "/opt/rocm/bin/rocprofv3", + "resolved_path": "/opt/rocm/core-10.0/bin/rocprofv3", + "sha256": "2d220ded2167097e480e6866a916b575548d56bed8a823a4e505f7133868f0a6", + "stat": [ + 66309, + 52593259, + 95727, + 1787266423000000000, + 1787946912530145205 + ] + }, + "profiler_version": { + "argv": [ + "/opt/rocm/bin/rocprofv3", + "--version" + ], + "exit_code": 0, + "stdout": " version: 1.3.5\n git_revision: 6b0e43f341195e203754e08f850e437ff2fc09f9\n library_arch: x86_64-unknown-linux-gnu\n system_name: Linux\n system_processor: x86_64\n system_version: 6.12.73-95.123.amzn2023.x86_64\n compiler_id: Clang\n compiler_version: 23.0.0\n rocm_version: 10.0.0\n", + "stderr": "" + }, + "revision": { + "argv": [ + "git", + "-C", + "/home/vikash/vllm.cpp-rdna3-wmma", + "rev-parse", + "HEAD" + ], + "exit_code": 0, + "stdout": "6e65c6fad158c7d2e7cd2f583c6b50e1ab694cbf\n", + "stderr": "" + }, + "original_dataset": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/workload.json", + "sha256": "4cab7f33eef255088ed38506aedb5750f3dfc0201a5c86459b385a1f5430468b", + "stat": [ + 66309, + 4601165, + 2042, + 1789359425030664149, + 1789359769692833552 + ] + }, + "expanded_dataset": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/workload-eight.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/workload-eight.json", + "sha256": "82a32ee193938d245f363b4bfd170df555870efca505db8048abe27ccde00777", + "stat": [ + 66309, + 5803231, + 8159, + 1789362100955359709, + 1789362100955359709 + ] + }, + "original_record_index_for_request": [ + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1 + ], + "rocprof_tmpdir": "/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-on", + "traced_argv": [ + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "ROCPROF_TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-on", + "TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-on", + "/opt/rocm/bin/rocprofv3", + "--hip-trace", + "--kernel-trace", + "--memory-copy-trace", + "--memory-allocation-trace", + "--marker-trace", + "--stats", + "--output-config", + "--output-format", + "csv", + "json", + "--output-directory", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof", + "--output-file", + "native-on", + "--", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/.venv/bin/python", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/monitor.jsonl", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "ROCPROF_TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-on", + "TMPDIR=/home/vikash/oracle/rdna3-wmma-latest/cache/rocprof/native-trace-on", + "/opt/rocm/bin/rocprofv3", + "--hip-trace", + "--kernel-trace", + "--memory-copy-trace", + "--memory-allocation-trace", + "--marker-trace", + "--stats", + "--output-config", + "--output-format", + "csv", + "json", + "--output-directory", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof", + "--output-file", + "native-on", + "--", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/output-token-ids.json" + ], + "trace_scope": "unfiltered HIP API, kernel dispatch, memory copy/allocation, and ROCTx traces; no hardware counter or ATT collection", + "interpretation": "trace overhead changes timings; use these runs to identify executing paths, not as the unprofiled performance denominator", + "gpu_busy_percent_before": 0, + "exit_code": 0, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "metrics_with_profiler_overhead": { + "Async scheduling enabled": 0.0, + "Pretokenized prompt admission": 1.0, + "Ignore EOS (requested)": 1.0, + "Ignore EOS (resolved sampling)": 1.0, + "Maximum concurrent batches": 1.0, + "Successful requests": 8.0, + "Maximum request concurrency": 1.0, + "Benchmark duration (s)": 11.12, + "Total input tokens": 1428.0, + "Total generated tokens": 128.0, + "Request throughput (req/s)": 0.72, + "Output token throughput (tok/s)": 11.51, + "Total token throughput (tok/s)": 139.87, + "Mean TTFT (ms)": 859.43, + "Median TTFT (ms)": 395.15, + "P99 TTFT (ms)": 3568.89, + "Mean TPOT (ms)": 35.41, + "Median TPOT (ms)": 33.81, + "P99 TPOT (ms)": 48.99, + "Mean ITL (ms)": 35.41, + "Median ITL (ms)": 20.63, + "P99 ITL (ms)": 202.18, + "Mean E2EL (ms)": 1390.53, + "Median E2EL (ms)": 961.22, + "P99 E2EL (ms)": 4084.28, + "Input token throughput (tok/s, over whole run)": 128.37, + "Prefill token throughput (tok/s, in/TTFT)": 207.7, + "Output (decode) token throughput (tok/s)": 11.51, + "Mean per-stream decode rate (tok/s)": 28.24 + }, + "trace_files": [ + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_agent_info.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_agent_info.csv", + "sha256": "90f47b57110e910cd39ed10f58a95a8f16bd1dadc12bb286363a2014e0ea9f40", + "stat": [ + 66309, + 5803273, + 2126, + 1789362119318581800, + 1789362119318581800 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_config.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_config.json", + "sha256": "d98d4842506a05ed16b9632f3d83e6e79652cd0fb28a4ebf2be5c567d66315bd", + "stat": [ + 66309, + 5803257, + 15406, + 1789362117310560335, + 1789362117310560335 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_domain_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_domain_stats.csv", + "sha256": "361570fa7ed7a70eeeddb7cac004c82f1103fbb9e8db9829d4df6434239a5c73", + "stat": [ + 66309, + 5803275, + 402, + 1789362119319581810, + 1789362119319581810 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_hip_api_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_hip_api_stats.csv", + "sha256": "91e4603c6e300a198137bfcad021a8b20edee6e10d360b4219fce31e3af1ff19", + "stat": [ + 66309, + 5803263, + 2559, + 1789362117803565605, + 1789362117803565605 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_hip_api_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_hip_api_trace.csv", + "sha256": "ebaa19247bf1abc9a092c1d329630209de1b048054e4b596e18eb943339e42f1", + "stat": [ + 66309, + 5803265, + 73868422, + 1789362119239580956, + 1789362119239580956 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_kernel_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_kernel_stats.csv", + "sha256": "2cb8e512704e0660f77f87cf0cbf64e13c67702561359f1f477cbbf094b813e8", + "stat": [ + 66309, + 5803259, + 8424, + 1789362117340257989, + 1789362117340257989 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_kernel_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_kernel_trace.csv", + "sha256": "426c624bf0e39efa15968319c2b530f546a979d0d068d05a5b9cfe9a46e0c440", + "stat": [ + 66309, + 5803261, + 29038874, + 1789362117608563521, + 1789362117608563521 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_allocation_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_allocation_stats.csv", + "sha256": "89f3003237f18be6869d937d0bdff1883c7c105627c9ed90f20ed5b76d0ffc26", + "stat": [ + 66309, + 5803270, + 352, + 1789362119309581703, + 1789362119309581703 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_allocation_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_allocation_trace.csv", + "sha256": "1ca6216e4a5148e2fcaa7da56f20b3723f66ea04dfd6cd4dd3a57da69ddf42e5", + "stat": [ + 66309, + 5803272, + 157890, + 1789362119316581778, + 1789362119316581778 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_copy_stats.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_copy_stats.csv", + "sha256": "c4e0cbbeaefac10c4261855b333ebd3ed8cda55c3b33a2df071fb1d16b4bedaf", + "stat": [ + 66309, + 5803267, + 174, + 1789362119274581330, + 1789362119274581330 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_copy_trace.csv", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_memory_copy_trace.csv", + "sha256": "bab74d3d2c9771480974ec9aeadf2aea0bdd293c358c73c1c04174da37cdec71", + "stat": [ + 66309, + 5803268, + 30363, + 1789362119283581426, + 1789362119283581426 + ] + }, + { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_results.json", + "resolved_path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_results.json", + "sha256": "14f3b41e8ea47a850c3c8b69628699a8b07e5099ebc7815167717a4984df90ed", + "stat": [ + 66309, + 5803277, + 382548823, + 1789362123435625784, + 1789362123435625784 + ] + } + ] +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-rocprof-native-on_kernel_stats.csv.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-on-rocprof-native-on_kernel_stats.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..6734394ae5473b6530c9c70c094e986f2cdcfc2a GIT binary patch literal 2430 zcmV-^34!(>iwFP!000021I1ZePut2Ce($e9JhhcInl<-9)s_<4a;lJSz+4_JH*q1S ziOtD{viGk)-c z%y(KB)wn#Z()nIB?p5^^m$>K-<_~ns%hcx6{`=};^VQ}>Gw5$zOt-eiO>eZd^}4K^ z`kzrVn{3p0+2p+JRd2SocKUVRE9=g?qBt9z7hk>(n{rAn+gQF%Cx5-Zd;9J3a~r*; zo=l&7J6-?i3hki2xp(_~*wm+wAJbpI+03-`DkG!F2JNiNj8ooPA*0jQWXgybGNY}d zjFgX2nUIl<(HcDCRWx$lfOht0Wj)=gMx)NjXjJZ-&bvkEt|l_8Cxg?v>TmSU%JKCy zxZ~dWY-_7MYYy+?rIhwkc;jR=8Ih1OBdMJWK2uRj(lOIy z0%_rWFiJgRPVcTqKRIj0(`2A76XX&rIpIXPV=ypHm+r{VIZFG(!`rg|)kj38a0TuZt+|2QEyhq{C z<+EH_4E6ZL6o-eQP{kpJEQ_Nqn%1JlD~|GyI|qN)R2;YPs^gr`_=E?4lJ6YgQEuAY zI8&VLVE+8WSvPEEj*LO=I2)v)n0brJ5J71pEkdnidVsieLZD13nJP=-iFI>r53ts6 zO{ewW^>9#E^Wu3Fj;?CzE@V6nd>#Xq^+D#T$Hkl$&6lPbrnfB)xBnOEO^9J;j5o$8 zYXMR&S}# zd*nDcETiDSRGJssI!@~7m5N|4izqy2!57n%zipaJ%Nr;vKq6MoJA_h zqRqfypecZ+1)D3-mlIYS7s7KZ*!|WDCI`*rBlMKCoTSb}YYB(^1vzLzmJ^msSW728 z=)oeHqZNTcE51Yt%RgSi!FnhV0|laWU@d~m6clg+D=M(+j9OgTfmzaEd4+O1u1}B5 zjQig{H{;Pkb6)L~)9Su-zfB-Z6nU$CVTJxAs=Uo}On+B2M;Zd%8DIlJu-Ygjk%!Ju zLPOu;!ZEo;B@-;TC`d~P+9#Nuy=F4qZt9EevswME>c5oldFaNP0bf6|Pml8*xp7}K z6UhLuVb*aH(KIRoZ8Bmo0yu+Zu^@?Y5OFpZS_WD-*axEtrzxlC$}s;bU%4V8i_}Z8 z2yjHkS(It803{}2r4b67?1SM@MB-2&A3cZ)X~#voDhdg$2LD$3A<=Ecmj0sZyuJ@W zj7l8X+YmMHy49P$KU@h+>F}0igkpmWM`)cQkEO-ZK~G?9F&$%>V4%}2AE6_FN|r#n z>n`i}i~M{zn0E5f@EyG0jcmO+{LIq5z3GUj!oCf5JlNnN{k-=|;4DBRU@Exd6jnwn zCy6I40{ACBHA4@Y@11H~SHqQ9@LQAk?E}gB5OG~aY$;!uj5I3P8;Oj?XhW17JghdP zrO-$L!?A-!KyHJM;M2VJW^E!GpN`7Q>&=ane2+uaLh)%Wqn4%;{va7jeZ!Ii4X0R~r>1?mX2Xv8ayGy>E*thTO-ZSoWZQSA4F^2p| zUi)^*uASi8RiWp$offuz(V~mTZM&M=_PKjcCLW!f?BHOoT{{a;79}A(NLVtE)#pyvRQ+6T>j;Sw)GT3J@I zpc60&l>OQj*=?$PFr0N~!&R#0VYdANRU!io@+yl_N~3tokGzmEZ4yZV=`H6YS1?~J z!r?|dZ(OXsNw!_iCgqT|1@({4`wuF!Kf{6#A?%tmV!@CJhk?T2NXHHpKmtn^O^O_( z8BiE_!VkG%g*FjF|0fLTvaS!mU)N*O4s!zWJI9LMKzs_I0{-!&jfee)jF;@w91|(# zZ4Cev*0dS0m*rqW z{yL$6mO(!!0Y83UL)zX7;4j_SU&^?L*6rcUdu%`M%^cEzR?-Hz12PVBKoSZYp#){{ z?g1+UlO&t<9_(gN&i9M?pqiYO=T)ojZs93TKuzBX{?gVPZnobLhr z1TD_T2+)D~g9bB3xM(${QZoEqDJewUz>zep5qlrC1an^p!{Hp}j%vs>ULzPQbV3%L z5d3;j0MKYLPwrUpXBjuQRTAnw@;4g`QnvJzPnT0nevzr~e)vgX6#%VHzBgAoDj*Uu z1EwHQ5VJDO=L7Cbe4sg_cuQUYm4N6^olf2>r_(3R=f~qk`Xd1|7qy0>amLQas|}ba zq$PFp&x9Z&gT+|eJ;BW`FcX8h8Rz|xCA65I_M6$4VYRAV6fP*PODIg)g wo}Ei8h2}G}%gNxRLZQ1T_*>Ir0@5?s0ohnC*{HB)QE7Vhf6a4CN9Z5`0FCFoEdT%j literal 0 HcmV?d00001 diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-pair-summary.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-pair-summary.json new file mode 100644 index 000000000..01e5493f7 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-native-trace-pair-summary.json @@ -0,0 +1,563 @@ +{ + "scope": "Native on/off matching rocprofv3 traces; dispatch reachability only. Durations are profiled, dynamic-clock observations without accepted clock attribution. No oracle invocation parity is claimed.", + "arms": { + "on": { + "trace": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-on/rocprof/native-on_kernel_trace.csv", + "trace_sha256": "426c624bf0e39efa15968319c2b530f546a979d0d068d05a5b9cfe9a46e0c440", + "trace_rows": 94673, + "trace_report_sha256": "86fc930e0ee16c13d51ea5038feb7835b98333251205681d4df626a3f14e733a", + "wmma_calls": 1216, + "wmma_kernels": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 536, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 512, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 168 + }, + "wmma_resources": [ + { + "Kernel_Name": "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)", + "LDS_Block_Size": "25600", + "Scratch_Size": "8", + "VGPR_Count": "192", + "Accum_VGPR_Count": "0", + "Workgroup_Size_X": "32" + }, + { + "Kernel_Name": "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)", + "LDS_Block_Size": "25600", + "Scratch_Size": "64", + "VGPR_Count": "192", + "Accum_VGPR_Count": "0", + "Workgroup_Size_X": "32" + }, + { + "Kernel_Name": "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)", + "LDS_Block_Size": "24576", + "Scratch_Size": "0", + "VGPR_Count": "144", + "Accum_VGPR_Count": "0", + "Workgroup_Size_X": "32" + } + ], + "prefill_windows": [ + { + "forward_index": 0, + "request_index": 0, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349467365679880, + "end_ns": 2349470818138900, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 16, + "request_index": 1, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349471334582030, + "end_ns": 2349472045925248, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 32, + "request_index": 2, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349472610127370, + "end_ns": 2349473011876791, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 48, + "request_index": 3, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349473613584733, + "end_ns": 2349473996506368, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 64, + "request_index": 4, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349474741784471, + "end_ns": 2349475135124345, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 80, + "request_index": 5, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349475571239620, + "end_ns": 2349475957635532, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 96, + "request_index": 6, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349476458845298, + "end_ns": 2349476851934025, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + }, + { + "forward_index": 112, + "request_index": 7, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349477326291195, + "end_ns": 2349477712269268, + "wmma_calls": 152, + "wmma_by_kernel": { + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 67, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ4K(float*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 64, + "void vt::rocm::(anonymous namespace)::KQuantGemmKWmmaQ6K(unsigned short*, unsigned char const*, vt::cpu::BlockQ8_K const*, long, long, long, long)": 21 + } + } + ], + "decode_windows": 120, + "decode_wmma_calls": 0, + "output_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "profiler": { + "argv": [ + "/opt/rocm/bin/rocprofv3", + "--version" + ], + "exit_code": 0, + "stdout": " version: 1.3.5\n git_revision: 6b0e43f341195e203754e08f850e437ff2fc09f9\n library_arch: x86_64-unknown-linux-gnu\n system_name: Linux\n system_processor: x86_64\n system_version: 6.12.73-95.123.amzn2023.x86_64\n compiler_id: Clang\n compiler_version: 23.0.0\n rocm_version: 10.0.0\n", + "stderr": "" + } + }, + "off": { + "trace": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-trace-off/rocprof/native-off_kernel_trace.csv", + "trace_sha256": "c71218ced6337322e7f37ea6e699184afb6b8e83c23a454ab7cd307edbb4e30b", + "trace_rows": 93457, + "trace_report_sha256": "0d3d6bfb5ca0fe65db35454fda4e47661bf69b0725a258a07e7b1578fefbb155", + "wmma_calls": 0, + "wmma_kernels": {}, + "wmma_resources": [], + "prefill_windows": [ + { + "forward_index": 0, + "request_index": 0, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349569658878616, + "end_ns": 2349573362032593, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 16, + "request_index": 1, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349573679671483, + "end_ns": 2349575254375929, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 32, + "request_index": 2, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349575752648515, + "end_ns": 2349576462152008, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 48, + "request_index": 3, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349577045945187, + "end_ns": 2349577642274237, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 64, + "request_index": 4, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349578261302890, + "end_ns": 2349578889851727, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 80, + "request_index": 5, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349579400052183, + "end_ns": 2349579996107410, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 96, + "request_index": 6, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349580479894510, + "end_ns": 2349581108371769, + "wmma_calls": 0, + "wmma_by_kernel": {} + }, + { + "forward_index": 112, + "request_index": 7, + "token_index": 0, + "phase": "prefill", + "start_ns": 2349581618781060, + "end_ns": 2349582218211519, + "wmma_calls": 0, + "wmma_by_kernel": {} + } + ], + "decode_windows": 120, + "decode_wmma_calls": 0, + "output_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "profiler": { + "argv": [ + "/opt/rocm/bin/rocprofv3", + "--version" + ], + "exit_code": 0, + "stdout": " version: 1.3.5\n git_revision: 6b0e43f341195e203754e08f850e437ff2fc09f9\n library_arch: x86_64-unknown-linux-gnu\n system_name: Linux\n system_processor: x86_64\n system_version: 6.12.73-95.123.amzn2023.x86_64\n compiler_id: Clang\n compiler_version: 23.0.0\n rocm_version: 10.0.0\n", + "stderr": "" + } + } + }, + "tokens_exact_to_primary": true +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-oracle-whole-workload.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-oracle-whole-workload.json new file mode 100644 index 000000000..b1c699591 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-oracle-whole-workload.json @@ -0,0 +1,5717 @@ +{ + "status": "COMPLETE", + "argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/aggregate_oracle_captures.py", + "--primary", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json", + "--llama", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json", + "--output", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/oracle-whole-workload.json" + ], + "adapter_sha256": "3ef9b56075cd1986f54771b4a7f29c8b802d6f71b244a1a9bc4dd245c55e7bf4", + "inputs": { + "primary": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json", + "sha256": "caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040" + }, + "llama": { + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json", + "sha256": "41211f9ee03aeb17c246f52f224a4aa6b719de57dcd4d539fdaef26e503b6c5f" + } + }, + "metrics_helper": { + "path": "/home/vikash/vllm.cpp-rdna3-wmma/tools/bench/vllm_closed_loop_metrics.py", + "sha256": "c03582073458fea18811ce080a712133b408cd5dcccb10fe5f77c76a117890ae" + }, + "primary": { + "metrics": { + "admission": "closed_loop_delta_client_observed", + "async_scheduling_requested": "default", + "duration_s": 8.162898891605437, + "successful_requests": 8, + "maximum_request_concurrency": 1, + "input_tokens": 1428, + "output_tokens": 128, + "request_throughput": 0.9800439900372944, + "input_token_throughput": 174.93785222165704, + "output_token_throughput": 15.68070384059671, + "total_token_throughput": 190.61855606225376, + "mean_per_stream_decode_rate": 60.05358709769082, + "ttft_ms": { + "mean": 770.5776255461387, + "median": 765.0631009601057, + "p99": 799.1170803131536 + }, + "core_ttft_ms": { + "mean": 768.8039243221283, + "median": 764.961838722229, + "p99": 798.0073022842407 + }, + "tpot_ms": { + "mean": 16.65179464422787, + "median": 16.21277156906823, + "p99": 19.9875987910976 + }, + "itl_ms": { + "mean": 16.651747721092153, + "median": 16.197673743590713, + "p99": 21.694974261336043 + }, + "e2el_ms": { + "mean": 1020.3545452095568, + "median": 1007.8902754466981, + "p99": 1068.1999568548054 + }, + "requests": [ + { + "index": 0, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 780.6660789065063, + "core_ttft_ms": 767.5075531005859, + "tpot_ms": 15.885159621636072, + "e2el_ms": 1018.9434732310474, + "itls_ms": [ + 15.744260977953672, + 15.691751148551702, + 15.566946938633919, + 16.07252098619938, + 15.83911431953311, + 16.46815100684762, + 15.342170838266611, + 16.185353975743055, + 15.490504913032055, + 15.833014156669378, + 16.287156846374273, + 15.881556086242199, + 15.719511080533266, + 15.68904984742403, + 16.46527089178562 + ] + }, + { + "index": 1, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 763.4225827641785, + "core_ttft_ms": 763.2694244384766, + "tpot_ms": 16.18701834231615, + "e2el_ms": 1006.2278578989208, + "itls_ms": [ + 15.98412822932005, + 16.266406048089266, + 15.912845730781555, + 16.76198933273554, + 16.11706195399165, + 16.036389861255884, + 16.53780322521925, + 16.2264839746058, + 16.381619032472372, + 16.067870892584324, + 16.2812159396708, + 16.045010183006525, + 16.09724061563611, + 16.058280132710934, + 16.030089929699898 + ] + }, + { + "index": 2, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 760.9834340400994, + "core_ttft_ms": 760.8354091644287, + "tpot_ms": 16.27991007020076, + "e2el_ms": 1005.1820850931108, + "itls_ms": [ + 15.965277794748545, + 16.231314279139042, + 16.312116757035255, + 16.224575228989124, + 16.19581412523985, + 16.226773615926504, + 16.163623426109552, + 16.196143813431263, + 16.07505977153778, + 16.538414172828197, + 16.297985799610615, + 16.274006105959415, + 16.501212026923895, + 16.33657794445753, + 16.659066081047058 + ] + }, + { + "index": 3, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 764.1522851772606, + "core_ttft_ms": 764.0547752380371, + "tpot_ms": 15.89674772694707, + "e2el_ms": 1002.6035010814667, + "itls_ms": [ + 15.647978987544775, + 15.651308931410313, + 15.940267127007246, + 16.162022948265076, + 15.722990967333317, + 15.710610896348953, + 16.14951202645898, + 16.019438859075308, + 15.645558945834637, + 16.634116414934397, + 15.413271728903055, + 15.967958141118288, + 16.089390963315964, + 15.861093997955322, + 15.83510497584939 + ] + }, + { + "index": 4, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 800.5058653652668, + "core_ttft_ms": 800.3029823303223, + "tpot_ms": 16.238524795820314, + "e2el_ms": 1044.0837373025715, + "itls_ms": [ + 15.904245898127556, + 16.047790180891752, + 16.152731608599424, + 16.259226016700268, + 16.09935099259019, + 16.55538333579898, + 16.26797579228878, + 16.085720155388117, + 16.10036101192236, + 16.684436704963446, + 16.323167365044355, + 16.368377953767776, + 16.274055931717157, + 16.255265101790428, + 16.199203673750162 + ] + }, + { + "index": 5, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 765.9739167429507, + "core_ttft_ms": 765.8796310424805, + "tpot_ms": 16.138398678352434, + "e2el_ms": 1008.0498969182372, + "itls_ms": [ + 16.171342227607965, + 15.9500977024436, + 16.432319302111864, + 16.05747966095805, + 15.985348261892796, + 16.54410269111395, + 15.77435340732336, + 16.484590712934732, + 17.10945786908269, + 15.007552225142717, + 16.39909902587533, + 16.206073109060526, + 15.66811976954341, + 16.111270990222692, + 16.17427309975028 + ] + }, + { + "index": 6, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 762.8504689782858, + "core_ttft_ms": 762.7127170562744, + "tpot_ms": 16.325345666458208, + "e2el_ms": 1007.7306539751589, + "itls_ms": [ + 16.177853103727102, + 16.321866773068905, + 16.391529235988855, + 16.165252774953842, + 16.272195149213076, + 15.970458276569843, + 16.224913764744997, + 16.47878112271428, + 16.344246920198202, + 16.330346930772066, + 16.3138872012496, + 16.805979888886213, + 16.234674956649542, + 16.636224929243326, + 16.211464069783688 + ] + }, + { + "index": 7, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 766.0663723945618, + "core_ttft_ms": 765.8689022064209, + "tpot_ms": 20.263252252091963, + "e2el_ms": 1070.0151561759412, + "itls_ms": [ + 15.740750823169947, + 16.268655192106962, + 16.262804623693228, + 16.339638270437717, + 16.2323541007936, + 16.21793396770954, + 16.27846574410796, + 16.45581005141139, + 16.246465034782887, + 16.21455419808626, + 16.47232100367546, + 16.289925668388605, + 22.770589217543602, + 15.415653120726347, + 70.7420026883483 + ] + } + ] + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "original_legs": [ + { + "leg_index": 0, + "kind": "cold", + "metrics": { + "admission": "closed_loop_delta_client_observed", + "async_scheduling_requested": "default", + "duration_s": 2.0251945913769305, + "successful_requests": 2, + "maximum_request_concurrency": 1, + "input_tokens": 357, + "output_tokens": 32, + "request_throughput": 0.9875594219517441, + "input_token_throughput": 176.2793568183863, + "output_token_throughput": 15.800950751227905, + "total_token_throughput": 192.08030756961423, + "mean_per_stream_decode_rate": 62.359344670883154, + "ttft_ms": { + "mean": 772.0443308353424, + "median": 772.0443308353424, + "p99": 780.493643945083 + }, + "core_ttft_ms": { + "mean": 765.3884887695312, + "median": 765.3884887695312, + "p99": 767.4651718139648 + }, + "tpot_ms": { + "mean": 16.03608898197611, + "median": 16.03608898197611, + "p99": 16.18399975510935 + }, + "itl_ms": { + "mean": 16.036025636518996, + "median": 16.05164515785873, + "p99": 16.696975361555815 + }, + "e2el_ms": { + "mean": 1012.5856655649841, + "median": 1012.5856655649841, + "p99": 1018.8163170777261 + }, + "requests": [ + { + "index": 0, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 780.6660789065063, + "core_ttft_ms": 767.5075531005859, + "tpot_ms": 15.885159621636072, + "e2el_ms": 1018.9434732310474, + "itls_ms": [ + 15.744260977953672, + 15.691751148551702, + 15.566946938633919, + 16.07252098619938, + 15.83911431953311, + 16.46815100684762, + 15.342170838266611, + 16.185353975743055, + 15.490504913032055, + 15.833014156669378, + 16.287156846374273, + 15.881556086242199, + 15.719511080533266, + 15.68904984742403, + 16.46527089178562 + ] + }, + { + "index": 1, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 763.4225827641785, + "core_ttft_ms": 763.2694244384766, + "tpot_ms": 16.18701834231615, + "e2el_ms": 1006.2278578989208, + "itls_ms": [ + 15.98412822932005, + 16.266406048089266, + 15.912845730781555, + 16.76198933273554, + 16.11706195399165, + 16.036389861255884, + 16.53780322521925, + 16.2264839746058, + 16.381619032472372, + 16.067870892584324, + 16.2812159396708, + 16.045010183006525, + 16.09724061563611, + 16.058280132710934, + 16.030089929699898 + ] + } + ] + }, + "prompt_token_ids": [ + [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ] + ], + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "raw_closed_loop_records": [ + { + "arrival_s": 2349045.855187269, + "first_token_s": 2349046.635853348, + "last_token_s": 2349046.874129682, + "completion_s": 2349046.874130742, + "itls_s": [ + 0.015744260977953672, + 0.015691751148551702, + 0.015566946938633919, + 0.01607252098619938, + 0.01583911431953311, + 0.01646815100684762, + 0.015342170838266611, + 0.016185353975743055, + 0.015490504913032055, + 0.01583301415666938, + 0.016287156846374273, + 0.0158815560862422, + 0.015719511080533266, + 0.01568904984742403, + 0.01646527089178562 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7675075531005859 + }, + { + "arrival_s": 2349046.874137782, + "first_token_s": 2349047.637560365, + "last_token_s": 2349047.8803648, + "completion_s": 2349047.88036564, + "itls_s": [ + 0.01598412822932005, + 0.016266406048089266, + 0.015912845730781555, + 0.01676198933273554, + 0.01611706195399165, + 0.016036389861255884, + 0.01653780322521925, + 0.0162264839746058, + 0.016381619032472372, + 0.016067870892584324, + 0.0162812159396708, + 0.016045010183006525, + 0.01609724061563611, + 0.016058280132710934, + 0.016030089929699898 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7632694244384766 + } + ], + "memory_before_reset_peak": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203348992, + "reserved_bytes": 21854420992, + "peak_allocated_bytes": 21203348992, + "peak_reserved_bytes": 21854420992, + "device_free_bytes": 1285292032, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ], + "memory_after": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203344896, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21235772416, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ] + }, + { + "leg_index": 1, + "kind": "warm", + "metrics": { + "admission": "closed_loop_delta_client_observed", + "async_scheduling_requested": "default", + "duration_s": 2.0078006461262703, + "successful_requests": 2, + "maximum_request_concurrency": 1, + "input_tokens": 357, + "output_tokens": 32, + "request_throughput": 0.9961148303536408, + "input_token_throughput": 177.80649721812486, + "output_token_throughput": 15.937837285658253, + "total_token_throughput": 193.74433450378314, + "mean_per_stream_decode_rate": 62.156859565982714, + "ttft_ms": { + "mean": 762.56785960868, + "median": 762.56785960868, + "p99": 764.120596665889 + }, + "core_ttft_ms": { + "mean": 762.4450922012329, + "median": 762.4450922012329, + "p99": 764.022581577301 + }, + "tpot_ms": { + "mean": 16.088328898573913, + "median": 16.088328898573913, + "p99": 16.276078446768224 + }, + "itl_ms": { + "mean": 16.088286228477955, + "median": 16.155767487362027, + "p99": 16.651830677874386 + }, + "e2el_ms": { + "mean": 1003.8927930872887, + "median": 1003.8927930872887, + "p99": 1005.1562992529944 + }, + "requests": [ + { + "index": 0, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 760.9834340400994, + "core_ttft_ms": 760.8354091644287, + "tpot_ms": 16.27991007020076, + "e2el_ms": 1005.1820850931108, + "itls_ms": [ + 15.965277794748545, + 16.231314279139042, + 16.312116757035255, + 16.224575228989124, + 16.19581412523985, + 16.226773615926504, + 16.163623426109552, + 16.196143813431263, + 16.07505977153778, + 16.538414172828197, + 16.297985799610615, + 16.274006105959415, + 16.501212026923895, + 16.33657794445753, + 16.659066081047058 + ] + }, + { + "index": 1, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 764.1522851772606, + "core_ttft_ms": 764.0547752380371, + "tpot_ms": 15.89674772694707, + "e2el_ms": 1002.6035010814667, + "itls_ms": [ + 15.647978987544775, + 15.651308931410313, + 15.940267127007246, + 16.162022948265076, + 15.722990967333317, + 15.710610896348953, + 16.14951202645898, + 16.019438859075308, + 15.645558945834637, + 16.634116414934397, + 15.413271728903055, + 15.967958141118288, + 16.089390963315964, + 15.861093997955322, + 15.83510497584939 + ] + } + ] + }, + "prompt_token_ids": [ + [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ] + ], + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "raw_closed_loop_records": [ + { + "arrival_s": 2349047.884606503, + "first_token_s": 2349048.645589937, + "last_token_s": 2349048.889787898, + "completion_s": 2349048.889788588, + "itls_s": [ + 0.015965277794748545, + 0.016231314279139042, + 0.016312116757035255, + 0.016224575228989124, + 0.01619581412523985, + 0.016226773615926504, + 0.016163623426109552, + 0.016196143813431263, + 0.01607505977153778, + 0.016538414172828197, + 0.016297985799610615, + 0.016274006105959415, + 0.016501212026923895, + 0.01633657794445753, + 0.016659066081047058 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7608354091644287 + }, + { + "arrival_s": 2349048.889794468, + "first_token_s": 2349049.653946753, + "last_token_s": 2349049.892397379, + "completion_s": 2349049.892397969, + "itls_s": [ + 0.015647978987544775, + 0.015651308931410313, + 0.015940267127007246, + 0.016162022948265076, + 0.015722990967333317, + 0.015710610896348953, + 0.01614951202645898, + 0.016019438859075308, + 0.015645558945834637, + 0.016634116414934397, + 0.015413271728903055, + 0.015967958141118288, + 0.016089390963315964, + 0.015861093997955322, + 0.01583510497584939 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7640547752380371 + } + ], + "memory_before_reset_peak": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203344896, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21203344896, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ], + "memory_after": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203340800, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21235768320, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ] + }, + { + "leg_index": 2, + "kind": "warm", + "metrics": { + "admission": "closed_loop_delta_client_observed", + "async_scheduling_requested": "default", + "duration_s": 2.0521468338556588, + "successful_requests": 2, + "maximum_request_concurrency": 1, + "input_tokens": 357, + "output_tokens": 32, + "request_throughput": 0.974589131247649, + "input_token_throughput": 173.96415992770534, + "output_token_throughput": 15.593426099962384, + "total_token_throughput": 189.55758602766772, + "mean_per_stream_decode_rate": 61.772391734360156, + "ttft_ms": { + "mean": 783.2398910541087, + "median": 783.2398910541087, + "p99": 800.1605458790436 + }, + "core_ttft_ms": { + "mean": 783.0913066864014, + "median": 783.0913066864014, + "p99": 799.9587488174438 + }, + "tpot_ms": { + "mean": 16.188461737086374, + "median": 16.188461737086374, + "p99": 16.237523534645636 + }, + "itl_ms": { + "mean": 16.188425725946825, + "median": 16.18673838675022, + "p99": 16.98620173148811 + }, + "e2el_ms": { + "mean": 1026.0668171104044, + "median": 1026.0668171104044, + "p99": 1043.7233988987282 + }, + "requests": [ + { + "index": 0, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 800.5058653652668, + "core_ttft_ms": 800.3029823303223, + "tpot_ms": 16.238524795820314, + "e2el_ms": 1044.0837373025715, + "itls_ms": [ + 15.904245898127556, + 16.047790180891752, + 16.152731608599424, + 16.259226016700268, + 16.09935099259019, + 16.55538333579898, + 16.26797579228878, + 16.085720155388117, + 16.10036101192236, + 16.684436704963446, + 16.323167365044355, + 16.368377953767776, + 16.274055931717157, + 16.255265101790428, + 16.199203673750162 + ] + }, + { + "index": 1, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 765.9739167429507, + "core_ttft_ms": 765.8796310424805, + "tpot_ms": 16.138398678352434, + "e2el_ms": 1008.0498969182372, + "itls_ms": [ + 16.171342227607965, + 15.9500977024436, + 16.432319302111864, + 16.05747966095805, + 15.985348261892796, + 16.54410269111395, + 15.77435340732336, + 16.484590712934732, + 17.10945786908269, + 15.007552225142717, + 16.39909902587533, + 16.206073109060526, + 15.66811976954341, + 16.111270990222692, + 16.17427309975028 + ] + } + ] + }, + "prompt_token_ids": [ + [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ] + ], + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "raw_closed_loop_records": [ + { + "arrival_s": 2349049.897579747, + "first_token_s": 2349050.698085612, + "last_token_s": 2349050.941662904, + "completion_s": 2349050.941663484, + "itls_s": [ + 0.015904245898127556, + 0.016047790180891752, + 0.016152731608599424, + 0.016259226016700268, + 0.01609935099259019, + 0.01655538333579898, + 0.01626797579228878, + 0.016085720155388117, + 0.01610036101192236, + 0.016684436704963446, + 0.016323167365044355, + 0.016368377953767776, + 0.016274055931717157, + 0.016255265101790428, + 0.016199203673750162 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.8003029823303223 + }, + { + "arrival_s": 2349050.941669334, + "first_token_s": 2349051.707643251, + "last_token_s": 2349051.949718731, + "completion_s": 2349051.949719231, + "itls_s": [ + 0.016171342227607965, + 0.0159500977024436, + 0.016432319302111864, + 0.01605747966095805, + 0.015985348261892796, + 0.01654410269111395, + 0.01577435340732336, + 0.016484590712934732, + 0.01710945786908269, + 0.015007552225142717, + 0.01639909902587533, + 0.016206073109060526, + 0.01566811976954341, + 0.016111270990222692, + 0.01617427309975028 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7658796310424805 + } + ], + "memory_before_reset_peak": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203340800, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21203340800, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ], + "memory_after": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203338752, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21235764224, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ] + }, + { + "leg_index": 3, + "kind": "warm", + "metrics": { + "admission": "closed_loop_delta_client_observed", + "async_scheduling_requested": "default", + "duration_s": 2.0777568202465773, + "successful_requests": 2, + "maximum_request_concurrency": 1, + "input_tokens": 357, + "output_tokens": 32, + "request_throughput": 0.9625765539600782, + "input_token_throughput": 171.81991488187396, + "output_token_throughput": 15.401224863361252, + "total_token_throughput": 187.2211397452352, + "mean_per_stream_decode_rate": 54.661837670090485, + "ttft_ms": { + "mean": 764.4584206864238, + "median": 764.4584206864238, + "p99": 766.034213360399 + }, + "core_ttft_ms": { + "mean": 764.2908096313477, + "median": 764.2908096313477, + "p99": 765.8373403549194 + }, + "tpot_ms": { + "mean": 18.294298959275086, + "median": 18.294298959275086, + "p99": 20.223873186235625 + }, + "itl_ms": { + "mean": 18.294253293424845, + "median": 16.27533044666052, + "p99": 56.830292781814975 + }, + "e2el_ms": { + "mean": 1038.87290507555, + "median": 1038.87290507555, + "p99": 1069.3923111539334 + }, + "requests": [ + { + "index": 0, + "prompt_tokens": 183, + "output_tokens": 16, + "ttft_ms": 762.8504689782858, + "core_ttft_ms": 762.7127170562744, + "tpot_ms": 16.325345666458208, + "e2el_ms": 1007.7306539751589, + "itls_ms": [ + 16.177853103727102, + 16.321866773068905, + 16.391529235988855, + 16.165252774953842, + 16.272195149213076, + 15.970458276569843, + 16.224913764744997, + 16.47878112271428, + 16.344246920198202, + 16.330346930772066, + 16.3138872012496, + 16.805979888886213, + 16.234674956649542, + 16.636224929243326, + 16.211464069783688 + ] + }, + { + "index": 1, + "prompt_tokens": 174, + "output_tokens": 16, + "ttft_ms": 766.0663723945618, + "core_ttft_ms": 765.8689022064209, + "tpot_ms": 20.263252252091963, + "e2el_ms": 1070.0151561759412, + "itls_ms": [ + 15.740750823169947, + 16.268655192106962, + 16.262804623693228, + 16.339638270437717, + 16.2323541007936, + 16.21793396770954, + 16.27846574410796, + 16.45581005141139, + 16.246465034782887, + 16.21455419808626, + 16.47232100367546, + 16.289925668388605, + 22.770589217543602, + 15.415653120726347, + 70.7420026883483 + ] + } + ] + }, + "prompt_token_ids": [ + [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ] + ], + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "raw_closed_loop_records": [ + { + "arrival_s": 2349051.954568761, + "first_token_s": 2349052.71741923, + "last_token_s": 2349052.962298905, + "completion_s": 2349052.962299415, + "itls_s": [ + 0.016177853103727102, + 0.016321866773068905, + 0.016391529235988855, + 0.016165252774953842, + 0.016272195149213076, + 0.015970458276569843, + 0.016224913764744997, + 0.01647878112271428, + 0.016344246920198202, + 0.016330346930772066, + 0.0163138872012496, + 0.016805979888886213, + 0.016234674956649542, + 0.016636224929243326, + 0.016211464069783688 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7627127170562744 + }, + { + "arrival_s": 2349052.962304475, + "first_token_s": 2349053.728370847, + "last_token_s": 2349054.032318771, + "completion_s": 2349054.032319631, + "itls_s": [ + 0.015740750823169947, + 0.016268655192106962, + 0.016262804623693228, + 0.016339638270437717, + 0.0162323541007936, + 0.01621793396770954, + 0.01627846574410796, + 0.01645581005141139, + 0.016246465034782887, + 0.016214554198086262, + 0.01647232100367546, + 0.016289925668388605, + 0.022770589217543602, + 0.015415653120726347, + 0.0707420026883483 + ], + "output_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "core_ttft_s": 0.7658689022064209 + } + ], + "memory_before_reset_peak": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203338752, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21203338752, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ], + "memory_after": [ + { + "pid": 256, + "device_index": 0, + "device_name": "", + "allocated_bytes": 21203338752, + "reserved_bytes": 21858615296, + "peak_allocated_bytes": 21235764224, + "peak_reserved_bytes": 21858615296, + "device_free_bytes": 1281097728, + "device_total_bytes": 25753026560, + "process_peak_rss_bytes": 7233069056, + "device_scope": "whole device, including other processes", + "allocator_scope": "this model worker only" + } + ] + } + ], + "duration_scope": "sum of four closed-loop leg durations; excludes model initialization and inter-leg memory RPCs", + "initialization_seconds": 154.1374759338796, + "cold_label_limit": "first captured request leg after normal engine initialization and its built-in warmup; inspect JIT-cache history" + }, + "llama": { + "metrics_including_capture": { + "duration_s": 2.108510042, + "successful_requests": 8, + "maximum_request_concurrency": 1, + "input_tokens": 1428, + "output_tokens": 128, + "request_throughput": 3.7941483989384768, + "input_token_throughput": 677.2554892105181, + "output_token_throughput": 60.70637438301563, + "total_token_throughput": 737.9618635935337, + "ttft_ms": { + "mean": 100.993345125, + "median": 48.342348, + "p99": 445.0010924699999 + }, + "tpot_ms": { + "mean": 10.769017508333333, + "median": 10.294607833333334, + "p99": 12.387097034 + }, + "e2el_ms": { + "mean": 262.52860775, + "median": 207.742432, + "p99": 629.9159609899998 + }, + "itl_ms": { + "mean": 10.769006841666668, + "median": 8.36639149999997, + "p99": 52.012814360000014 + }, + "mean_per_stream_decode_rate": 92.85898172476507 + }, + "generated_token_ids": [ + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ] + ], + "original_legs": [ + { + "capture_leg_elapsed_seconds": 0.86156193, + "kind": "cold", + "leg_index": 0, + "memory_after": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21940404224, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3812622336 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_before": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 22177382400, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3575644160 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "requests": [ + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 660.76698, + "client_ttft_ms_including_capture": 474.229178, + "decode_call_ms": 167.041, + "decode_tokens_per_decode_call_second": 89.79831298902664, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 0, + "individual_decode_call_ms": [ + 466.07665199999997, + 20.80185, + 45.200195, + 10.047126, + 8.476765, + 7.866207999999999, + 7.58727, + 7.424036999999999, + 7.416786, + 7.415676, + 7.5149989999999995, + 7.494399, + 7.478378, + 7.440397, + 7.441837, + 7.435077 + ], + "logit_finite_check_and_copy_ms": 8.317898000000001, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg0.prompt0.logits-f32.bin", + "sha256": "8bc7b8c2e2756fd45218d7e781c43f9669ae2b728e6f06f1413b8de961e624d8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21942501376, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3810525184 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.519884, + "output_tokens": 16, + "prefill_decode_call_ms": 466.07665199999997, + "prefill_tokens_per_decode_call_second": 392.6392777126283, + "prompt_token_ids": [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + "prompt_tokens": 183, + "selected_logits": [ + 18.681062698364258, + 20.08531951904297, + 22.39346694946289, + 27.878042221069336, + 30.292675018310547, + 32.25696563720703, + 28.600374221801758, + 29.477128982543945, + 25.978090286254883, + 28.181903839111328, + 31.02532958984375, + 29.428905487060547, + 28.353240966796875, + 28.936019897460938, + 29.93036651611328, + 31.14231300354004 + ], + "token_emit_elapsed_ms": [ + 474.229178, + 495.98071300000004, + 548.1071010000001, + 559.04378, + 568.371607, + 577.099518, + 585.5575309999999, + 593.83246, + 602.113279, + 610.47758, + 619.109138, + 627.50265, + 635.842901, + 644.165251, + 652.45666, + 660.7669000000001 + ] + }, + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 199.811493, + "client_ttft_ms_including_capture": 45.535154, + "decode_call_ms": 140.43986499999997, + "decode_tokens_per_decode_call_second": 106.80728011238122, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 1, + "individual_decode_call_ms": [ + 41.133688, + 9.44685, + 31.979236, + 8.847364, + 8.053272999999999, + 7.754376000000001, + 7.517788, + 7.4613570000000005, + 7.421556, + 7.394246, + 7.427666, + 7.412745999999999, + 7.4265870000000005, + 7.435127, + 7.419226, + 7.442467000000001 + ], + "logit_finite_check_and_copy_ms": 8.642146, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg0.prompt1.logits-f32.bin", + "sha256": "a87d26794783cef03a98d5f9c7da9f8b384f7f4aec0bd6a1e4ea5937b0f784b8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21940404224, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3812622336 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.325398, + "output_tokens": 16, + "prefill_decode_call_ms": 41.133688, + "prefill_tokens_per_decode_call_second": 4230.109393546234, + "prompt_token_ids": [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ], + "prompt_tokens": 174, + "selected_logits": [ + 20.309520721435547, + 19.539794921875, + 21.5982666015625, + 26.342044830322266, + 24.691944122314453, + 32.0125846862793, + 25.15225601196289, + 27.549646377563477, + 28.45903778076172, + 22.98562240600586, + 27.100345611572266, + 28.86619758605957, + 27.893898010253906, + 29.978927612304688, + 30.755496978759766, + 32.14771270751953 + ], + "token_emit_elapsed_ms": [ + 45.535154, + 56.066592, + 89.02674400000001, + 98.758321, + 107.724148, + 116.384698, + 124.81213, + 133.144281, + 141.45011, + 149.913344, + 158.196573, + 166.45689099999998, + 174.761381, + 183.04875, + 191.36474, + 199.81121299999998 + ] + } + ] + }, + { + "capture_leg_elapsed_seconds": 0.419405767, + "kind": "warm", + "leg_index": 1, + "memory_after": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21936209920, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3816816640 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_before": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21940404224, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3812622336 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "requests": [ + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 204.237869, + "client_ttft_ms_including_capture": 51.864772, + "decode_call_ms": 139.667724, + "decode_tokens_per_decode_call_second": 107.39775497451366, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 0, + "individual_decode_call_ms": [ + 50.160026, + 9.301945, + 31.751878999999995, + 8.611597999999999, + 7.954740999999999, + 7.668733, + 7.497288999999999, + 7.439806, + 7.390105, + 7.394666, + 7.414667, + 7.406886, + 7.443447, + 7.445377000000001, + 7.475067999999999, + 7.4715169999999995 + ], + "logit_finite_check_and_copy_ms": 7.090367, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg1.prompt0.logits-f32.bin", + "sha256": "8bc7b8c2e2756fd45218d7e781c43f9669ae2b728e6f06f1413b8de961e624d8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21938307072, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3814719488 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.441052, + "output_tokens": 16, + "prefill_decode_call_ms": 50.160026, + "prefill_tokens_per_decode_call_second": 3648.323467774917, + "prompt_token_ids": [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + "prompt_tokens": 183, + "selected_logits": [ + 18.681062698364258, + 20.08531951904297, + 22.39346694946289, + 27.878042221069336, + 30.292675018310547, + 32.25696563720703, + 28.600374221801758, + 29.477128982543945, + 25.978090286254883, + 28.181903839111328, + 31.02532958984375, + 29.428905487060547, + 28.353240966796875, + 28.936019897460938, + 29.93036651611328, + 31.14231300354004 + ], + "token_emit_elapsed_ms": [ + 51.864772, + 61.694902000000006, + 94.025026, + 103.528377, + 112.401572, + 121.006929, + 129.37541099999999, + 137.6861, + 145.964669, + 154.225427, + 162.506206, + 170.78204499999998, + 179.109515, + 187.468876, + 195.85655799999998, + 204.237829 + ] + }, + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 214.254094, + "client_ttft_ms_including_capture": 42.776461000000005, + "decode_call_ms": 158.732845, + "decode_tokens_per_decode_call_second": 94.49840075631481, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 1, + "individual_decode_call_ms": [ + 41.039535, + 9.234744, + 50.922086, + 8.69506, + 7.891558999999999, + 7.57933, + 7.4392570000000005, + 7.441776, + 7.453437, + 7.441617, + 7.445187, + 7.436726, + 7.456587, + 7.430397, + 7.430896000000001, + 7.4341859999999995 + ], + "logit_finite_check_and_copy_ms": 7.031576999999999, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg1.prompt1.logits-f32.bin", + "sha256": "a87d26794783cef03a98d5f9c7da9f8b384f7f4aec0bd6a1e4ea5937b0f784b8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21936209920, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3816816640 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.325928, + "output_tokens": 16, + "prefill_decode_call_ms": 41.039535, + "prefill_tokens_per_decode_call_second": 4239.8141207009285, + "prompt_token_ids": [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ], + "prompt_tokens": 174, + "selected_logits": [ + 20.309520721435547, + 19.539794921875, + 21.5982666015625, + 26.342044830322266, + 24.691944122314453, + 32.0125846862793, + 25.15225601196289, + 27.549646377563477, + 28.45903778076172, + 22.98562240600586, + 27.100345611572266, + 28.86619758605957, + 27.893898010253906, + 29.978927612304688, + 30.755496978759766, + 32.14771270751953 + ], + "token_emit_elapsed_ms": [ + 42.776461000000005, + 52.613771, + 104.142403, + 113.723806, + 122.45454699999999, + 130.912511, + 139.270872, + 147.682054, + 156.017214, + 164.338754, + 172.640614, + 180.999685, + 189.330895, + 197.612424, + 205.898223, + 214.25367400000002 + ] + } + ] + }, + { + "capture_leg_elapsed_seconds": 0.436645123, + "kind": "warm", + "leg_index": 2, + "memory_after": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21932015616, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3821010944 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_before": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21936209920, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3816816640 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "requests": [ + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 211.246995, + "client_ttft_ms_including_capture": 56.685099, + "decode_call_ms": 140.945099, + "decode_tokens_per_decode_call_second": 106.42441707036582, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 0, + "individual_decode_call_ms": [ + 50.354760999999996, + 9.794939000000001, + 32.049978, + 8.849104, + 8.021702000000001, + 7.708783, + 7.5064090000000006, + 7.469318, + 7.453898, + 7.418326, + 7.427576, + 7.414986, + 7.426607, + 7.434147, + 7.494968, + 7.4743580000000005 + ], + "logit_finite_check_and_copy_ms": 8.192496, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg2.prompt0.logits-f32.bin", + "sha256": "8bc7b8c2e2756fd45218d7e781c43f9669ae2b728e6f06f1413b8de961e624d8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21934112768, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3818913792 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.422951, + "output_tokens": 16, + "prefill_decode_call_ms": 50.354760999999996, + "prefill_tokens_per_decode_call_second": 3634.2144489574684, + "prompt_token_ids": [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + "prompt_tokens": 183, + "selected_logits": [ + 18.681062698364258, + 20.08531951904297, + 22.39346694946289, + 27.878042221069336, + 30.292675018310547, + 32.25696563720703, + 28.600374221801758, + 29.477128982543945, + 25.978090286254883, + 28.181903839111328, + 31.02532958984375, + 29.428905487060547, + 28.353240966796875, + 28.936019897460938, + 29.93036651611328, + 31.14231300354004 + ], + "token_emit_elapsed_ms": [ + 56.685099, + 67.453393, + 100.444505, + 110.15185199999999, + 119.065528, + 127.70094600000002, + 136.100908, + 144.51232, + 152.82355, + 161.097999, + 169.371118, + 177.652426, + 185.93026500000002, + 194.457821, + 202.876163, + 211.246865 + ] + }, + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 220.038137, + "client_ttft_ms_including_capture": 43.948142000000004, + "decode_call_ms": 162.37436099999996, + "decode_tokens_per_decode_call_second": 92.37911642959446, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 1, + "individual_decode_call_ms": [ + 42.194276, + 9.169572, + 54.422028, + 8.633897999999999, + 7.927689999999999, + 7.6170409999999995, + 7.446377, + 7.493608, + 7.479768, + 7.454556999999999, + 7.419527, + 7.407685, + 7.452317, + 7.496058, + 7.4948380000000006, + 7.459397 + ], + "logit_finite_check_and_copy_ms": 7.720895000000001, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg2.prompt1.logits-f32.bin", + "sha256": "a87d26794783cef03a98d5f9c7da9f8b384f7f4aec0bd6a1e4ea5937b0f784b8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21932015616, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3821010944 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.331109, + "output_tokens": 16, + "prefill_decode_call_ms": 42.194276, + "prefill_tokens_per_decode_call_second": 4123.7820978371565, + "prompt_token_ids": [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ], + "prompt_tokens": 174, + "selected_logits": [ + 20.309520721435547, + 19.539794921875, + 21.5982666015625, + 26.342044830322266, + 24.691944122314453, + 32.0125846862793, + 25.15225601196289, + 27.549646377563477, + 28.45903778076172, + 22.98562240600586, + 27.100345611572266, + 28.86619758605957, + 27.893898010253906, + 29.978927612304688, + 30.755496978759766, + 32.14771270751953 + ], + "token_emit_elapsed_ms": [ + 43.948142000000004, + 53.654059, + 108.73801499999999, + 118.367999, + 127.24354399999999, + 135.724098, + 144.11141999999998, + 152.547553, + 161.106289, + 169.407018, + 177.76318999999998, + 186.144461, + 194.735308, + 203.286484, + 211.674146, + 220.03799700000002 + ] + } + ] + }, + { + "capture_leg_elapsed_seconds": 0.390897222, + "kind": "warm", + "leg_index": 3, + "memory_after": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21927821312, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3825205248 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_before": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21932015616, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3821010944 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "requests": [ + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 200.317714, + "client_ttft_ms_including_capture": 51.149542, + "decode_call_ms": 141.02974799999998, + "decode_tokens_per_decode_call_second": 106.36053891268388, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 0, + "individual_decode_call_ms": [ + 50.532735, + 9.403368, + 33.177367, + 8.735681, + 7.907159, + 7.59373, + 7.405526, + 7.451357, + 7.482838, + 7.419606, + 7.376555, + 7.398216, + 7.423166, + 7.415357, + 7.417136, + 7.422686000000001 + ], + "logit_finite_check_and_copy_ms": 2.4620260000000003, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg3.prompt0.logits-f32.bin", + "sha256": "8bc7b8c2e2756fd45218d7e781c43f9669ae2b728e6f06f1413b8de961e624d8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21929918464, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3823108096 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.5815049999999999, + "output_tokens": 16, + "prefill_decode_call_ms": 50.532735, + "prefill_tokens_per_decode_call_second": 3621.4149105525357, + "prompt_token_ids": [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + "prompt_tokens": 183, + "selected_logits": [ + 18.681062698364258, + 20.08531951904297, + 22.39346694946289, + 27.878042221069336, + 30.292675018310547, + 32.25696563720703, + 28.600374221801758, + 29.477128982543945, + 25.978090286254883, + 28.181903839111328, + 31.02532958984375, + 29.428905487060547, + 28.353240966796875, + 28.936019897460938, + 29.93036651611328, + 31.14231300354004 + ], + "token_emit_elapsed_ms": [ + 51.149542, + 61.149136, + 94.924239, + 104.168763, + 112.59119600000001, + 120.69746, + 128.682301, + 136.812796, + 144.844738, + 152.780158, + 160.669546, + 168.583596, + 176.521625, + 184.449095, + 192.36324399999998, + 200.317564 + ] + }, + { + "all_logits_finite": true, + "client_e2e_ms_including_capture": 189.55558, + "client_ttft_ms_including_capture": 41.758413000000004, + "decode_call_ms": 139.699903, + "decode_tokens_per_decode_call_second": 107.37301657253118, + "generated_is_eog": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "generated_token_ids": [ + 271, + 248068, + 198, + 90700, + 8340, + 25, + 271, + 16, + 13, + 220, + 2972, + 2014, + 53983, + 279, + 5952, + 64700 + ], + "index": 1, + "individual_decode_call_ms": [ + 41.099806, + 9.239745000000001, + 31.919154, + 8.680609, + 7.982351, + 7.615482, + 7.412656, + 7.395365, + 7.407095, + 7.379804999999999, + 7.425676, + 7.3803849999999995, + 7.488568, + 7.487168, + 7.452177, + 7.433667 + ], + "logit_finite_check_and_copy_ms": 2.537227, + "logits": { + "byte_order": "little-endian", + "bytes": 15892480, + "dtype": "float32", + "path": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json.leg3.prompt1.logits-f32.bin", + "sha256": "a87d26794783cef03a98d5f9c7da9f8b384f7f4aec0bd6a1e4ea5937b0f784b8", + "shape": [ + 16, + 248320 + ] + }, + "memory_after_request": { + "device_scope": "whole-device snapshots; not process allocation or a measured peak", + "devices": [ + { + "description": "AMD Radeon RX 7900 XTX", + "free_bytes": 21927821312, + "name": "ROCm0", + "total_bytes": 25753026560, + "used_bytes": 3825205248 + } + ], + "gpu_memory_omission": "no per-context allocation breakdown is exposed by public llama.h", + "process_gpu_allocation_bytes": null, + "process_peak_rss_bytes": 3191549952 + }, + "memory_clear_ms": 0.32661799999999996, + "output_tokens": 16, + "prefill_decode_call_ms": 41.099806, + "prefill_tokens_per_decode_call_second": 4233.596625735898, + "prompt_token_ids": [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ], + "prompt_tokens": 174, + "selected_logits": [ + 20.309520721435547, + 19.539794921875, + 21.5982666015625, + 26.342044830322266, + 24.691944122314453, + 32.0125846862793, + 25.15225601196289, + 27.549646377563477, + 28.45903778076172, + 22.98562240600586, + 27.100345611572266, + 28.86619758605957, + 27.893898010253906, + 29.978927612304688, + 30.755496978759766, + 32.14771270751953 + ], + "token_emit_elapsed_ms": [ + 41.758413000000004, + 51.562881999999995, + 84.104683, + 93.348687, + 101.872602, + 110.003277, + 117.932277, + 125.84350599999999, + 133.76756500000002, + 141.664034, + 149.60094400000003, + 157.56241400000002, + 165.617097, + 173.652369, + 181.61897, + 189.55554 + ] + } + ] + } + ], + "decode_call_only_metrics": { + "prefill_seconds": 0.7825914789999999, + "decode_seconds": 1.189930545, + "prefill_tokens_per_second": 1824.7068084931195, + "decode_tokens_per_second": 100.84622207928952 + }, + "duration_scope": "sum of four capture-leg durations, including memory clear, finite checks, logits copies, and request memory probes; excludes logit file writes and inter-leg work", + "initialization_seconds": 1.110250088, + "comparison_limit": "whole-workload request/token counts match; client timing includes additional llama correctness instrumentation and is not an equal-overhead latency denominator" + }, + "primary_llama_output_ids_exact": true +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model-retry-monitor.jsonl.gz b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-model-retry-monitor.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..aa39cffc2069000380556469c2b3a1a041b32708 GIT binary patch literal 35892 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 is not serializableSet VLLM_ALLOW_INSECURE_SERIALIZATION=1 to allow fallback to pickle-based serialization.", + "traceback": "Traceback (most recent call last):\n File \"/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py\", line 203, in main\n before = llm.collective_rpc(worker_memory, args=(True,))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/entrypoints/llm.py\", line 597, in collective_rpc\n return self.llm_engine.collective_rpc(method, timeout, args, kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/v1/engine/llm_engine.py\", line 437, in collective_rpc\n return self.engine_core.collective_rpc(method, timeout, args, kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/v1/engine/core_client.py\", line 1038, in collective_rpc\n return self.call_utility(\"collective_rpc\", method, timeout, args, kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/v1/engine/core_client.py\", line 969, in call_utility\n self._send_input(EngineCoreRequestType.UTILITY, (0, call_id, method, args))\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/v1/engine/core_client.py\", line 959, in _send_input\n msg = (self.core_engine, request_type.value, *self.encoder.encode(request))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/v1/serial_utils.py\", line 171, in encode\n bufs[0] = self.encoder.encode(obj)\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/vikash/oracle/rdna3-wmma-latest/.venv/lib/python3.12/site-packages/vllm/v1/serial_utils.py\", line 222, in enc_hook\n raise TypeError(\nTypeError: Object of type is not serializableSet VLLM_ALLOW_INSECURE_SERIALIZATION=1 to allow fallback to pickle-based serialization.\n" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-retry-teardown.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-retry-teardown.json new file mode 100644 index 000000000..9a9bc500b --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-primary-retry-teardown.json @@ -0,0 +1,16 @@ +{ + "at_utc": "2026-09-14T04:55:43.795754+00:00", + "reason": "All four model capture legs completed and report was flushed; interpreter shutdown left the engine alive. Stop only this measurement container to release GPU. Measured request timing excludes teardown.", + "report_sha256": "caad2b4491b3fd7e8e538ec0a739cc9f39748d4e7a491365a7930a168b9f8040", + "container_id": "80b631c3faab1d598b83a50b43a581eb5a6aeadc7b72e470b5a54e5a7a78372f", + "command": [ + "docker", + "stop", + "--time", + "10", + "80b631c3faab1d598b83a50b43a581eb5a6aeadc7b72e470b5a54e5a7a78372f" + ], + "exit_code": 0, + "stdout": "Flag --time has been deprecated, use --timeout instead\n80b631c3faab1d598b83a50b43a581eb5a6aeadc7b72e470b5a54e5a7a78372f\n", + "stderr": "" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-prompt-ids-retry.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-prompt-ids-retry.json new file mode 100644 index 000000000..dc52248f7 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-prompt-ids-retry.json @@ -0,0 +1,372 @@ +{ + "prompt_token_ids": [ + [ + 760, + 2614, + 4105, + 1304, + 264, + 2716, + 5122, + 9856, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 23066, + 1814, + 799, + 1330, + 2250, + 2943, + 13, + 14569, + 440, + 264, + 2716, + 11316, + 13 + ], + [ + 4274, + 279, + 8240, + 15060, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 2438, + 6105, + 5983, + 13358, + 18016, + 13, + 3855, + 279, + 7736, + 303, + 279, + 8240, + 13 + ] + ], + "output_len": 16, + "prompt_token_counts": [ + 183, + 174 + ], + "tokenization": "raw tokenizer.encode(text), no chat template and no manually inserted tokens", + "config_sha256": "3f519a65a220e7637dbfae800f2b94b907a63c84cb85993acdeebda47a63824c" +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-python-gpu-named-under-lock.sh b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-python-gpu-named-under-lock.sh new file mode 100644 index 000000000..e90daa42a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-python-gpu-named-under-lock.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# Trusted local worker_memory instrumentation; root must hold /home/vikash/gpu.lock. +set -euo pipefail +prep=/home/vikash/oracle/rdna3-wmma-latest +container_name=${1:?pass a unique container name followed by Python argv} +shift +exec docker run --rm --pull=never --network=none --user 1000:1000 --name "$container_name" \ + --device=/dev/kfd --device=/dev/dri --group-add 44 --group-add 992 \ + --entrypoint "$prep/.venv/bin/python" \ + -e PYTHONDONTWRITEBYTECODE=1 -e PYTHONUNBUFFERED=1 \ + -e USER=vikash -e LOGNAME=vikash -e TORCHINDUCTOR_CACHE_DIR="$prep/cache/torchinductor" \ + -e HIP_VISIBLE_DEVICES=0 -e ROCR_VISIBLE_DEVICES=0 \ + -e VLLM_PLUGINS=gguf -e HF_HUB_OFFLINE=1 -e TRANSFORMERS_OFFLINE=1 \ + -e VLLM_ALLOW_INSECURE_SERIALIZATION=1 -e VLLM_NO_USAGE_STATS=1 \ + -e XDG_CONFIG_HOME="$prep/config" \ + -e XDG_CACHE_HOME="$prep/cache" -e TMPDIR="$prep/tmp" \ + -e VLLM_CACHE_ROOT="$prep/cache/vllm" -e TRITON_CACHE_DIR="$prep/cache/triton" \ + -v "$prep:$prep" \ + -v /home/vikash/models:/home/vikash/models:ro \ + -v /home/vikash/vllm.cpp:/home/vikash/vllm.cpp:ro \ + -v /home/vikash/vllm.cpp-rdna3-wmma:/home/vikash/vllm.cpp-rdna3-wmma:ro \ + -w "$prep" \ + sha256:80aab4c182a1f3eeebe286173977e57fcaf10a049b41f475655b35d285de31dc "$@" diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-retry_primary_under_lock.sh b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-retry_primary_under_lock.sh new file mode 100644 index 000000000..4fc9cfb4a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-retry_primary_under_lock.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# The root coordinator invokes this only while holding /home/vikash/gpu.lock. +# New output names retain the first primary-model.json failure unchanged. +set -euo pipefail +prep=/home/vikash/oracle/rdna3-wmma-latest +exec /home/vikash/.venv/bin/python "$prep/adapters/monitor_command.py" \ + --output-jsonl "$prep/adapters/primary-model-retry-monitor.jsonl" \ + --timeout-seconds 600 --docker-name rdna3-wmma-primary-retry \ + -- "$prep/adapters/python-gpu-named-under-lock.sh" rdna3-wmma-primary-retry \ + "$prep/adapters/capture_primary.py" \ + --output "$prep/adapters/primary-model-retry.json" \ + --prompt-ids-output "$prep/adapters/prompt-ids-retry.json" diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_ab.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_ab.py new file mode 100644 index 000000000..9aa56a666 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_ab.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python3 +"""Run the fixed six-process WMMA A/B under the caller's GPU mutex.""" +from __future__ import annotations + +import argparse +import datetime +import hashlib +import json +import os +from pathlib import Path +import re +import statistics +import subprocess +import sys +import time +import traceback + +PREP = Path('/home/vikash/oracle/rdna3-wmma-latest') +REPO = Path('/home/vikash/vllm.cpp-rdna3-wmma') +ORDER = ('on1', 'off1', 'off2', 'on2', 'on3', 'off3') + + +def sha256(path): + result = hashlib.sha256() + with Path(path).open('rb') as stream: + for block in iter(lambda: stream.read(8 * 1024 * 1024), b''): + result.update(block) + return result.hexdigest() + + +def stat_identity(path): + value = Path(path).stat() + return [value.st_dev, value.st_ino, value.st_size, value.st_mtime_ns, value.st_ctime_ns] + + +def file_identity(path): + path = Path(path).absolute() + return {'path': str(path), 'resolved_path': str(path.resolve()), + 'sha256': sha256(path), 'stat': stat_identity(path)} + + +def write_json(path, report): + temporary = path.with_name(path.name + '.tmp') + temporary.write_text(json.dumps(report, indent=2, allow_nan=False) + '\n') + temporary.replace(path) + + +def command_output(argv, cwd=None): + result = subprocess.run(argv, cwd=cwd, text=True, capture_output=True, timeout=30) + return {'argv': argv, 'exit_code': result.returncode, + 'stdout': result.stdout, 'stderr': result.stderr} + + +def linked_libraries(binary): + result = command_output(['ldd', str(binary)]) + if 'not found' in result['stdout']: + raise RuntimeError('native benchmark has unresolved shared libraries: ' + result['stdout']) + if result['exit_code'] and 'not a dynamic executable' not in result['stderr'] + result['stdout']: + raise RuntimeError('ldd failed: ' + result['stderr']) + paths = sorted(set(re.findall(r'(?:=>\s+|^\s*)(/[^\s]+)\s+\(', result['stdout'], re.MULTILINE))) + return {'ldd': result, 'files': [file_identity(path) for path in paths], + 'scope': 'ELF dependencies resolved by ldd; runtime-loaded kernel objects remain in runtime trace evidence'} + + +def parse_metrics(text): + metrics = {} + for line in text.splitlines(): + match = re.match(r'^\s*([^:]+):\s+(-?\d+(?:\.\d+)?)\s*$', line) + if match: + metrics[match.group(1).strip()] = float(match.group(2)) + for name, expected in (('Successful requests', 8), ('Total input tokens', 1428), + ('Total generated tokens', 128), ('Maximum request concurrency', 1), + ('Ignore EOS (resolved sampling)', 1)): + if metrics.get(name) != expected: + raise RuntimeError(f'native metric {name!r} is {metrics.get(name)!r}; expected {expected}') + return metrics + + +def validate_ids(rows): + if not isinstance(rows, list) or len(rows) != 8: + raise RuntimeError('expected eight generated-ID arrays') + if any(not isinstance(row, list) or len(row) != 16 or + any(type(token) is not int or token < 0 for token in row) for row in rows): + raise RuntimeError('each generated-ID array must contain 16 nonnegative integer tokens') + return rows + + +def oracle_comparison(path, kind, reference): + if not path.exists(): + return {'path': str(path), 'status': 'UNAVAILABLE', 'reason': 'capture file absent'} + capture = json.loads(path.read_text()) + result = {'path': str(path), 'sha256': sha256(path), 'capture_status': capture.get('status')} + if capture.get('status') != 'COMPLETE': + return dict(result, status='UNAVAILABLE', reason='capture did not complete') + if len(capture.get('legs', [])) != 4: + raise RuntimeError(f'{kind} complete capture does not have four legs') + if kind == 'primary': + rows = [row for leg in capture['legs'] for row in leg['generated_token_ids']] + else: + rows = [request['generated_token_ids'] for leg in capture['legs'] for request in leg['requests']] + rows = validate_ids(rows) + mismatches = [{'request': index, 'native': left, 'oracle': right} + for index, (left, right) in enumerate(zip(reference, rows)) if left != right] + return dict(result, status='MATCH' if not mismatches else 'MISMATCH', + generated_token_ids=rows, mismatches=mismatches) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--output-dir', type=Path, required=True) + parser.add_argument('--binary', type=Path, default=REPO / 'build-rdna3-wmma-operator/examples/vllm-bench') + parser.add_argument('--repo', type=Path, default=REPO) + parser.add_argument('--dataset', type=Path, default=PREP / 'qwen35-4b-text/workload.json') + parser.add_argument('--model', type=Path, default=PREP / 'qwen35-4b-text') + parser.add_argument('--sysfs-device', type=Path, default=Path('/sys/class/drm/card1/device')) + parser.add_argument('--timeout-seconds', type=float, default=600) + parser.add_argument('--primary-report', type=Path, default=PREP / 'adapters/primary-model-retry.json') + parser.add_argument('--llama-report', type=Path, default=PREP / 'adapters/llama-model.json') + args = parser.parse_args() + if not 0 < args.timeout_seconds <= 43200: + parser.error('timeout must be positive and at most 43200 seconds') + args.output_dir = args.output_dir.absolute() + args.output_dir.mkdir(parents=True, exist_ok=False) + report_path = args.output_dir / 'summary.json' + report = {'status': 'RUNNING', 'phase': 'preparation', 'argv': sys.argv, + 'adapter_sha256': sha256(__file__), 'order': ORDER, 'runs': [], + 'started_utc': datetime.datetime.now(datetime.timezone.utc).isoformat(), + 'boot_id': Path('/proc/sys/kernel/random/boot_id').read_text().strip()} + try: + dataset = json.loads(args.dataset.read_text()) + if not isinstance(dataset, list) or len(dataset) != 2: + raise RuntimeError('original dataset must contain exactly two records') + expanded = args.output_dir / 'workload-eight.json' + write_json(expanded, dataset * 4) + report['datasets'] = {'original': file_identity(args.dataset), + 'expanded': file_identity(expanded), + 'original_record_index_for_request': [0, 1] * 4, + 'transformation': 'exact original records repeated four times in original order'} + binary = args.binary.absolute() + if binary.read_bytes()[:4] != b'\x7fELF': + raise RuntimeError('benchmark must be an ELF executable') + report['binary'] = file_identity(binary) + report['shared_libraries'] = linked_libraries(binary) + report['revision'] = command_output(['git', 'rev-parse', 'HEAD'], args.repo) + report['worktree_status'] = command_output(['git', 'status', '--short'], args.repo) + report['model_path'] = str(args.model.absolute()) + if args.model.is_dir(): + model_inputs = [args.model / name for name in + ('config.json', 'tokenizer.json', 'tokenizer_config.json', 'model.gguf')] + else: + model_inputs = [args.model] + report['model_inputs'] = [file_identity(path) for path in model_inputs if path.exists()] + report['inherited_runtime_environment'] = { + key: value for key, value in os.environ.items() + if key.startswith(('VT_', 'HIP_', 'ROCR_', 'HSA_', 'ROCBLAS_', 'HIPBLASLT_', 'OMP_')) + or key in ('LD_LIBRARY_PATH', 'LD_PRELOAD')} + report['timing_limits'] = [ + 'Each process loads one model and benchmarks eight requests: the original two prompts repeated four times.', + 'Each process includes its own initialization and first-use effects; no warm-only native leg is inferred.', + 'Native metrics aggregate all eight requests. Oracle comparison uses all four two-request legs; retain their cold/warm breakdown.', + 'External process wall time includes monitor polling and process startup/teardown. Subtracting benchmark duration is not an isolated startup-latency measurement.', + 'CPU ps percentages are process-lifetime averages. The operator checks contention; the driver records these snapshots.', + 'Same-binary A/B numerical ratios do not establish a cross-oracle performance floor or trace parity.'] + monitored_files = [report['binary'], report['datasets']['original'], report['datasets']['expanded']] + monitored_files += report['shared_libraries']['files'] + report['model_inputs'] + monitor = PREP / 'adapters/monitor_command.py' + report['monitor'] = file_identity(monitor) + write_json(report_path, report) + reference = None + for label in ORDER: + report['phase'] = label + for identity in monitored_files: + if stat_identity(identity['path']) != identity['stat']: + raise RuntimeError('input or binary changed during A/B: ' + identity['path']) + if sha256(binary) != report['binary']['sha256']: + raise RuntimeError('native binary hash changed before ' + label) + busy = int((args.sysfs_device / 'gpu_busy_percent').read_text().strip()) + if busy < 0 or busy > 2: + raise RuntimeError(f'GPU idle gate failed before {label}: gpu_busy_percent={busy}, limit=2') + ps = command_output(['ps', '-eo', 'pid,ppid,stat,psr,pcpu,pmem,comm', '--sort=-pcpu']) + ps['stdout'] = '\n'.join(ps['stdout'].splitlines()[:31]) + '\n' + ps_path = args.output_dir / f'{label}.cpu-contention.json' + write_json(ps_path, {'ps': ps, 'loadavg': Path('/proc/loadavg').read_text().strip(), + 'sampled_utc': datetime.datetime.now(datetime.timezone.utc).isoformat()}) + ids_path = args.output_dir / f'{label}.output-token-ids.json' + monitor_path = args.output_dir / f'{label}.monitor.jsonl' + native_argv = [str(binary), '--model', str(args.model.absolute()), + '--dataset-path', str(expanded), '--num-prompts', '8', + '--input-len', '256', '--output-len', '16', '--concurrency', '1', + '--max-num-batched-tokens', '512', '--num-blocks', '64', + '--temperature', '0', '--seed', '0', '--skip-chat-template', + '--ignore-eos', '--output-token-ids', str(ids_path)] + arm = 'on' if label.startswith('on') else 'off' + toggle_argv = ['env', '-u', 'VT_ROCM_QUANT_WMMA'] if arm == 'on' else ['env', 'VT_ROCM_QUANT_WMMA=0'] + argv = [sys.executable, str(monitor), '--output-jsonl', str(monitor_path), + '--repo', str(args.repo), '--sysfs-device', str(args.sysfs_device), + '--interval-seconds', '0.05', '--timeout-seconds', str(args.timeout_seconds), + '--'] + toggle_argv + native_argv + row = {'label': label, 'arm': arm, 'argv': argv, 'native_argv': native_argv, + 'wmma_environment': None if arm == 'on' else '0', 'gpu_busy_percent_before': busy, + 'cpu_contention': file_identity(ps_path), 'monitor_path': str(monitor_path)} + report['runs'].append(row) + write_json(report_path, report) + started = time.monotonic() + completed = subprocess.run(argv, check=False) + row['external_process_wall_seconds_including_monitor'] = time.monotonic() - started + row['exit_code'] = completed.returncode + if completed.returncode: + raise RuntimeError(f'{label} monitor/benchmark exited {completed.returncode}') + row['output_token_ids_file'] = file_identity(ids_path) + row['generated_token_ids'] = validate_ids(json.loads(ids_path.read_text())) + text = monitor_path.with_suffix('.stdout.log').read_text() + row['metrics'] = parse_metrics(text) + row['external_minus_benchmark_duration_seconds'] = ( + row['external_process_wall_seconds_including_monitor'] - row['metrics']['Benchmark duration (s)']) + if reference is None: + reference = row['generated_token_ids'] + row['matches_first_process_exactly'] = row['generated_token_ids'] == reference + write_json(report_path, report) + report['phase'] = 'verification' + for identity in monitored_files: + if stat_identity(identity['path']) != identity['stat'] or sha256(identity['path']) != identity['sha256']: + raise RuntimeError('input or linked code changed across A/B: ' + identity['path']) + report['identities_unchanged_after_all_runs'] = True + report['all_native_output_ids_exact'] = all(row['matches_first_process_exactly'] for row in report['runs']) + report['oracle_comparisons'] = { + 'primary': oracle_comparison(args.primary_report, 'primary', reference), + 'llama': oracle_comparison(args.llama_report, 'llama', reference)} + mismatch = (not report['all_native_output_ids_exact'] or + any(row['status'] == 'MISMATCH' for row in report['oracle_comparisons'].values())) + report['same_binary_output_gate'] = 'PASS' if report['all_native_output_ids_exact'] else 'FAIL' + oracle_states = [row['status'] for row in report['oracle_comparisons'].values()] + report['cross_oracle_output_gate'] = ('FAIL' if 'MISMATCH' in oracle_states else + 'PENDING' if 'UNAVAILABLE' in oracle_states else 'PASS') + if report['all_native_output_ids_exact']: + report['same_binary_comparison_scope'] = ( + 'All six native generated-ID arrays match exactly; these A/B values remain descriptive when ' + 'cross-oracle output parity fails or remains pending. They do not establish cross-oracle correctness.') + names = sorted(set.intersection(*(set(row['metrics']) for row in report['runs']))) + report['same_binary_numeric_comparison'] = {} + for name in names: + on = statistics.median(row['metrics'][name] for row in report['runs'] if row['arm'] == 'on') + off = statistics.median(row['metrics'][name] for row in report['runs'] if row['arm'] == 'off') + report['same_binary_numeric_comparison'][name] = { + 'on_median': on, 'off_median': off, 'on_over_off': on / off if off else None} + report.update(status='TOKEN_MISMATCH' if mismatch else 'COMPLETE', phase='complete') + write_json(report_path, report) + print(json.dumps({'status': report['status'], 'summary': str(report_path)})) + return 1 if mismatch else 0 + except Exception as exc: + report.update(status='ERROR', error=str(exc), error_type=type(exc).__name__, traceback=traceback.format_exc()) + write_json(report_path, report) + print(json.dumps({'status': 'ERROR', 'phase': report['phase'], 'error': str(exc), + 'summary': str(report_path)}), file=sys.stderr) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_trace.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_trace.py new file mode 100644 index 000000000..163803aba --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-run_native_trace.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +"""Prepare or execute one bounded native rocprofv3 trace under the caller's GPU mutex.""" +from __future__ import annotations + +import argparse +import json +import os +from pathlib import Path +import subprocess +import sys +import traceback + +from run_native_ab import PREP, REPO, file_identity, command_output, parse_metrics, validate_ids, write_json + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--arm', choices=('on', 'off'), required=True) + parser.add_argument('--output-dir', type=Path, required=True) + parser.add_argument('--prepare-only', action='store_true', help='write exact argv and input identities without reading GPU activity or starting the trace') + args = parser.parse_args() + args.output_dir = args.output_dir.absolute() + args.output_dir.mkdir(parents=True, exist_ok=False) + report_path = args.output_dir / 'recipe-and-result.json' + report = {'status': 'PREPARING', 'arm': args.arm, 'argv': sys.argv, + 'adapter': file_identity(Path(__file__)), 'phase': 'preparation'} + try: + source_dataset = PREP / 'qwen35-4b-text/workload.json' + records = json.loads(source_dataset.read_text()) + if not isinstance(records, list) or len(records) != 2: + raise ValueError('original workload must contain exactly two records') + expanded = args.output_dir / 'workload-eight.json' + write_json(expanded, records * 4) + binary = REPO / 'build-rdna3-wmma-operator/examples/vllm-bench' + model = Path('/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf') + model_identity = file_identity(model) + if model_identity['sha256'] != '00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4': + raise RuntimeError('retained GGUF hash mismatch') + profiler = Path('/opt/rocm/bin/rocprofv3') + trace_tmp = PREP / 'cache/rocprof' / args.output_dir.name + trace_tmp.mkdir(parents=True, exist_ok=True) + if str(trace_tmp).startswith('/dev/shm') or not os.access(trace_tmp, os.W_OK): + raise RuntimeError('profiler temporary directory must be writable task storage') + profiler_outputs = args.output_dir / 'rocprof' + profiler_outputs.mkdir() + ids_path = args.output_dir / 'output-token-ids.json' + toggle = ['env', '-u', 'VT_ROCM_QUANT_WMMA'] if args.arm == 'on' else ['env', 'VT_ROCM_QUANT_WMMA=0'] + traced_argv = toggle + ['HIP_VISIBLE_DEVICES=0', 'ROCR_VISIBLE_DEVICES=0', + 'ROCPROF_TMPDIR=' + str(trace_tmp), 'TMPDIR=' + str(trace_tmp), str(profiler), + '--hip-trace', '--kernel-trace', '--memory-copy-trace', '--memory-allocation-trace', + '--marker-trace', '--stats', '--output-config', '--output-format', 'csv', 'json', + '--output-directory', str(profiler_outputs), '--output-file', 'native-' + args.arm, + '--', str(binary), '--model', str(model), + '--dataset-path', str(expanded), '--num-prompts', '8', '--input-len', '256', + '--output-len', '16', '--concurrency', '1', '--max-num-batched-tokens', '512', + '--num-blocks', '64', '--temperature', '0', '--seed', '0', '--skip-chat-template', + '--ignore-eos', '--output-token-ids', str(ids_path)] + monitor_path = args.output_dir / 'monitor.jsonl' + monitor_argv = [sys.executable, str(PREP / 'adapters/monitor_command.py'), + '--output-jsonl', str(monitor_path), '--interval-seconds', '0.05', + '--timeout-seconds', '600', '--'] + traced_argv + report.update( + binary=file_identity(binary), model=model_identity, profiler=file_identity(profiler), + profiler_version=command_output([str(profiler), '--version']), + revision=command_output(['git', '-C', str(REPO), 'rev-parse', 'HEAD']), + original_dataset=file_identity(source_dataset), expanded_dataset=file_identity(expanded), + original_record_index_for_request=[0, 1] * 4, + rocprof_tmpdir=str(trace_tmp), traced_argv=traced_argv, monitor_argv=monitor_argv, + trace_scope='unfiltered HIP API, kernel dispatch, memory copy/allocation, and ROCTx traces; no hardware counter or ATT collection', + interpretation='trace overhead changes timings; use these runs to identify executing paths, not as the unprofiled performance denominator') + report['status'] = 'PREPARED' + write_json(report_path, report) + if args.prepare_only: + print(json.dumps({'status': 'PREPARED', 'recipe': str(report_path), 'gpu_executed': False})) + return 0 + report['phase'] = 'idle_gate' + busy = int(Path('/sys/class/drm/card1/device/gpu_busy_percent').read_text().strip()) + if not 0 <= busy <= 2: + raise RuntimeError(f'GPU idle gate rejected busy={busy}; limit=2') + report['gpu_busy_percent_before'] = busy + report['phase'] = 'trace' + report['status'] = 'RUNNING' + write_json(report_path, report) + result = subprocess.run(monitor_argv, check=False) + report['exit_code'] = result.returncode + if result.returncode: + raise RuntimeError(f'trace monitor/application exited {result.returncode}') + report['generated_token_ids'] = validate_ids(json.loads(ids_path.read_text())) + report['metrics_with_profiler_overhead'] = parse_metrics(monitor_path.with_suffix('.stdout.log').read_text()) + report['trace_files'] = [file_identity(path) for path in sorted(profiler_outputs.rglob('*')) if path.is_file()] + if not report['trace_files']: + raise RuntimeError('rocprofv3 produced no trace files') + if file_identity(binary) != report['binary'] or file_identity(expanded) != report['expanded_dataset']: + raise RuntimeError('binary or dataset changed across the trace') + if file_identity(model) != report['model']: + raise RuntimeError('retained GGUF changed across the trace') + report.update(status='COMPLETE', phase='complete') + write_json(report_path, report) + print(json.dumps({'status': 'COMPLETE', 'report': str(report_path)})) + return 0 + except Exception as exc: + report.update(status='ERROR', error=str(exc), error_type=type(exc).__name__, traceback=traceback.format_exc()) + write_json(report_path, report) + print(json.dumps({'status': 'ERROR', 'error': str(exc), 'report': str(report_path)}), file=sys.stderr) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_adapter_manifest.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_adapter_manifest.py new file mode 100644 index 000000000..9fc39bc7d --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_adapter_manifest.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +"""Seal preparation artifacts; exclude coordinating task's active GPU capture outputs.""" +import datetime +import hashlib +import json +from pathlib import Path +import subprocess + +PREP = Path('/home/vikash/oracle/rdna3-wmma-latest') +ADAPTERS = PREP / 'adapters' + + +def identity(path): + return {'path': str(path), 'bytes': path.stat().st_size, + 'sha256': hashlib.sha256(path.read_bytes()).hexdigest()} + + +def command(argv): + result = subprocess.run(argv, text=True, capture_output=True, check=False) + return {'argv': argv, 'exit_code': result.returncode, + 'stdout': result.stdout, 'stderr': result.stderr} + + +files = [] +for pattern in ('*.py', '*.cpp', '*.sh'): + files.extend(ADAPTERS.glob(pattern)) +files += [ADAPTERS / name for name in ( + 'capture_llama', 'fake_native_bench', 'HANDOFF.md', + 'llama-adapter-build.log', 'llama-adapter-build.exit', + 'llama-input-error-check.json', 'llama-input-error-check.log', 'invalid-prompt-ids.json', + 'tokenization-check.json', 'tokenization-check.prompt-ids.json', 'tokenization-check.log', + 'monitor-cpu-check.jsonl', 'monitor-timeout-check.jsonl', 'monitor-docker-cpu-check.jsonl', + 'aggregate-fixture-primary.json', 'aggregate-fixture-llama.json', + 'aggregate-fixture-mismatch-primary.json', 'aggregate-cpu-check.json', + 'primary-model.json', 'prompt-ids.json')] +for folder in ('native-ab-cpu-check', 'native-ab-mismatch-check', + 'native-ab-oracle-mismatch-check', 'native-ab-busy-check', + 'native-trace-on-preparation', 'native-trace-off-preparation', + 'fake-sysfs', 'busy-sysfs'): + files.extend(path for path in (ADAPTERS / folder).rglob('*') if path.is_file()) +files += [PREP / name for name in ( + 'python-gpu-under-lock.sh', 'python-no-gpu.sh', + 'logs/build-provenance.json', 'logs/import-provenance.json', + 'logs/plugin-source-artifact-verification.json', + 'qwen35-4b-text/config.json', 'qwen35-4b-text/tokenizer.json', + 'qwen35-4b-text/tokenizer_config.json', 'qwen35-4b-text/workload.json')] +manifest = { + 'status': 'COMPLETE_PREPARATION', + 'sealed_utc': datetime.datetime.now(datetime.timezone.utc).isoformat(), + 'scope': 'external scratch measurement adapters and completed CPU checks', + 'gpu_workloads_executed_by_adapter_author': False, + 'first_primary_failure': 'coordinator execution; retained separately; no generated tokens', + 'active_gpu_outputs_excluded': ['primary-model-retry*', 'llama-model*', 'native-ab-model*', 'oracle-whole-workload.json'], + 'files': [identity(path) for path in sorted(set(files))], + 'upstream_worktrees': {}, + 'llama_adapter_compiler': command(['/opt/rocm/llvm/bin/clang++', '--version']), + 'llama_adapter_dynamic_dependencies': command(['ldd', str(ADAPTERS / 'capture_llama')]), + 'fake_benchmark_compile_argv': ['/usr/bin/c++', '-std=c++17', '-O2', '-Wall', '-Wextra', '-Werror', + str(ADAPTERS / 'fake_native_bench.cpp'), '-o', str(ADAPTERS / 'fake_native_bench')], + 'check_expectations': { + 'tokenization-check.json': 'TOKENIZED_ONLY; prompt counts [183,174]', + 'llama-adapter-build.exit': '0', + 'llama-input-error-check.json': 'ERROR input_validation; noninteger prompt refused before backend initialization', + 'monitor-cpu-check.jsonl': 'COMPLETE; process RSS/PSS sampled using synthetic GPU sysfs files', + 'monitor-timeout-check.jsonl': 'TIMEOUT; own CPU child removed; monitor exit 124', + 'monitor-docker-cpu-check.jsonl': 'COMPLETE; actual container host PID distinct from CLI PID; no devices exposed', + 'native-ab-cpu-check/summary.json': 'COMPLETE; six same-output CPU processes in fixed order', + 'native-ab-mismatch-check/summary.json': 'TOKEN_MISMATCH; off-arm mutation detected; exit 1', + 'native-ab-busy-check/summary.json': 'ERROR; synthetic busy=3 rejected before any process launch; exit 1', + 'native-ab-oracle-mismatch-check/summary.json': 'TOKEN_MISMATCH; same-binary PASS and numeric ratios retained; cross-oracle FAIL; exit 1', + 'aggregate-cpu-check.json': 'COMPLETE; independent expected duration 10s, 8 requests, 1428 inputs, 128 outputs, 142.8 input tok/s and 12.8 output tok/s', + 'native-trace-on-preparation/recipe-and-result.json': 'PREPARED; exact rocprofv3 on argv; no GPU workload launched', + 'native-trace-off-preparation/recipe-and-result.json': 'PREPARED; exact rocprofv3 off argv; no GPU workload launched', + }, +} +for folder in ('vllm-source', 'llama-source', 'plugin-source'): + manifest['upstream_worktrees'][folder] = { + 'revision': command(['git', '-C', str(PREP / folder), 'rev-parse', 'HEAD']), + 'status': command(['git', '-C', str(PREP / folder), 'status', '--short'])} +output = ADAPTERS / 'adapter-manifest.json' +output.write_text(json.dumps(manifest, indent=2) + '\n') +print(json.dumps(identity(output))) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_trace_model_fix_manifest.py b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_trace_model_fix_manifest.py new file mode 100644 index 000000000..a304d7bc3 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-seal_trace_model_fix_manifest.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +"""Seal the trace-model correction while preserving the original adapter manifest.""" +import datetime +import json +from pathlib import Path + +from run_native_ab import sha256 + +ADAPTERS = Path('/home/vikash/oracle/rdna3-wmma-latest/adapters') + + +def identity(path): + return {'path': str(path), 'bytes': path.stat().st_size, 'sha256': sha256(path)} + + +original_path = ADAPTERS / 'adapter-manifest.json' +original = json.loads(original_path.read_text()) +original_identity = identity(original_path) +assert original_identity['sha256'] == 'c89ed2148cc9d1c1ccfde308f861fbdcdb416c6e6e39d342fa5e83b0b936f254' +changed_paths = {str(ADAPTERS / name) for name in ('run_native_trace.py', 'HANDOFF.md')} +files = {entry['path']: entry for entry in original['files']} +for path in changed_paths: + files[path] = identity(Path(path)) +additions = [original_path, Path(__file__), ADAPTERS / 'trace-gguf-model-check.json'] +for folder in ('history/trace-gguf-fix-before', 'native-trace-on-gguf-preparation', + 'native-trace-off-gguf-preparation'): + additions.extend(path for path in (ADAPTERS / folder).rglob('*') if path.is_file()) +for path in additions: + files[str(path)] = identity(path) +recipes = [json.loads((ADAPTERS / f'native-trace-{arm}-gguf-preparation/recipe-and-result.json').read_text()) + for arm in ('on', 'off')] +assert recipes[0]['model'] == recipes[1]['model'] +model = recipes[0]['model'] +assert model['path'] == '/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf' +assert model['sha256'] == '00fe7986ff5f6b463e62455821146049db6f9313603938a70800d1fb69ef11a4' +files[model['path']] = {'path': model['path'], 'bytes': model['stat'][2], 'sha256': model['sha256']} +manifest = dict(original) +manifest.update( + sealed_utc=datetime.datetime.now(datetime.timezone.utc).isoformat(), + scope='external trace-model path correction and original preparation artifacts', + prior_manifest=original_identity, + correction={'changed_paths': sorted(changed_paths), + 'reason': 'native model-directory argument selected the safetensors loader without shards; use the retained GGUF file', + 'unchanged_running_driver': files[str(ADAPTERS / 'run_native_ab.py')], + 'preserved_prior_bytes': str(ADAPTERS / 'history/trace-gguf-fix-before/archive-map.json'), + 'gpu_executed_by_helper': False}, + files=[files[path] for path in sorted(files)]) +manifest['check_expectations'] = dict(original['check_expectations']) +manifest['check_expectations']['trace-gguf-model-check.json'] = 'PASS; syntax, exact model argv/hash, eight-request dataset, trace bounds, and preserved original evidence' +for arm in ('on', 'off'): + manifest['check_expectations'][f'native-trace-{arm}-gguf-preparation/recipe-and-result.json'] = ( + 'PREPARED; exact retained GGUF argv and verified model SHA256; eight requests; no GPU workload launched') +output = ADAPTERS / 'adapter-manifest-gguf-trace.json' +output.write_text(json.dumps(manifest, indent=2) + '\n') +print(json.dumps(identity(output))) diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-trace-gguf-model-check.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-trace-gguf-model-check.json new file mode 100644 index 000000000..1289c194a --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-adapters-trace-gguf-model-check.json @@ -0,0 +1,13 @@ +{ + "status": "PASS", + "checks": [ + "Python AST syntax", + "exact GGUF model argv and SHA256 in both prepare-only reports", + "same eight-request dataset", + "600-second trace bound", + "task-local temporary directories", + "running driver and completed adapter sources unchanged", + "prior manifest and archived bytes unchanged" + ], + "gpu_executed": false +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-derived-measurements.json b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-derived-measurements.json new file mode 100644 index 000000000..cde7f2776 --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-derived-measurements.json @@ -0,0 +1,1161 @@ +{ + "status": "DESCRIPTIVE_WITH_LIMITS", + "source_files": [ + "model-adapters-native-ab-model-gguf-summary.json", + "model-adapters-oracle-whole-workload.json", + "model-adapters-*monitor.jsonl.gz", + "model-adapters-native-ab-model-gguf-*monitor.jsonl.gz" + ], + "reduction": "Native values are medians of the three process aggregates. Oracle values aggregate all four original two-request legs. Ratios always divide native ON by the named denominator. Prefill is total input tokens divided by summed observed TTFT. Memory values are medians of process-wide sampled peaks, not allocator-equivalent peaks.", + "timing_limits": [ + "Each process loads one model and benchmarks eight requests: the original two prompts repeated four times.", + "Each process includes its own initialization and first-use effects; no warm-only native leg is inferred.", + "Native metrics aggregate all eight requests. Oracle comparison uses all four two-request legs; retain their cold/warm breakdown.", + "External process wall time includes monitor polling and process startup/teardown. Subtracting benchmark duration is not an isolated startup-latency measurement.", + "CPU ps percentages are process-lifetime averages. The operator checks contention; the driver records these snapshots.", + "Same-binary A/B numerical ratios do not establish a cross-oracle performance floor or trace parity.", + "sum of four closed-loop leg durations; excludes model initialization and inter-leg memory RPCs", + "sum of four capture-leg durations, including memory clear, finite checks, logits copies, and request memory probes; excludes logit file writes and inter-leg work", + "whole-workload request/token counts match; client timing includes additional llama correctness instrumentation and is not an equal-overhead latency denominator", + "Clock samples cover process lifetimes including initialization and teardown. They do not establish the required active benchmark clock-window acceptance." + ], + "axes": [ + { + "axis": "Measured duration", + "unit": "s", + "higher_is_better": false, + "on": 8.64, + "off": 10.47, + "on_over_off": 0.8252148997134671, + "primary": 8.162898891605437, + "on_over_primary": 1.058447509240278, + "llama": 2.108510042, + "on_over_llama": 4.097680270853555 + }, + { + "axis": "Request throughput", + "unit": "requests/s", + "higher_is_better": true, + "on": 0.93, + "off": 0.76, + "on_over_off": 1.223684210526316, + "primary": 0.9800439900372944, + "on_over_primary": 0.9489369961491321, + "llama": 3.7941483989384768, + "on_over_llama": 0.2451142923825 + }, + { + "axis": "Input throughput over whole run", + "unit": "tokens/s", + "higher_is_better": true, + "on": 165.19, + "off": 136.39, + "on_over_off": 1.2111591758926608, + "primary": 174.93785222165704, + "on_over_primary": 0.9442781988125365, + "llama": 677.2554892105181, + "on_over_llama": 0.2439109060490056 + }, + { + "axis": "Output throughput over whole run", + "unit": "tokens/s", + "higher_is_better": true, + "on": 14.81, + "off": 12.23, + "on_over_off": 1.2109566639411284, + "primary": 15.68070384059671, + "on_over_primary": 0.9444729108177854, + "llama": 60.70637438301563, + "on_over_llama": 0.24396120095328125 + }, + { + "axis": "Total throughput over whole run", + "unit": "tokens/s", + "higher_is_better": true, + "on": 180.0, + "off": 148.62, + "on_over_off": 1.2111425111021397, + "primary": 190.61855606225376, + "on_over_primary": 0.9442942162525569, + "llama": 737.9618635935337, + "on_over_llama": 0.24391504341902312 + }, + { + "axis": "Mean per-stream decode rate", + "unit": "tokens/s", + "higher_is_better": true, + "on": 53.33, + "off": 53.15, + "on_over_off": 1.0033866415804327, + "primary": 60.05358709769082, + "on_over_primary": 0.8880402083766723, + "llama": 92.85898172476507, + "on_over_llama": 0.5743117037194166 + }, + { + "axis": "Mean TTFT", + "unit": "ms", + "higher_is_better": false, + "on": 796.44, + "off": 1026.69, + "on_over_off": 0.7757356163983287, + "primary": 770.5776255461387, + "on_over_primary": 1.0335623220769377, + "llama": 100.993345125, + "on_over_llama": 7.886064166052149 + }, + { + "axis": "Median TTFT", + "unit": "ms", + "higher_is_better": false, + "on": 386.51, + "off": 617.09, + "on_over_off": 0.6263429969696478, + "primary": 765.0631009601057, + "on_over_primary": 0.5052001586731271, + "llama": 48.342348, + "on_over_llama": 7.995267420606049 + }, + { + "axis": "P99 TTFT", + "unit": "ms", + "higher_is_better": false, + "on": 3440.21, + "off": 3687.62, + "on_over_off": 0.9329079460465016, + "primary": 799.1170803131536, + "on_over_primary": 4.305013726714325, + "llama": 445.0010924699999, + "on_over_llama": 7.730790009761436 + }, + { + "axis": "Mean TPOT", + "unit": "ms", + "higher_is_better": false, + "on": 18.75, + "off": 18.81, + "on_over_off": 0.9968102073365231, + "primary": 16.65179464422787, + "on_over_primary": 1.126004758081703, + "llama": 10.769017508333333, + "on_over_llama": 1.7411059073393451 + }, + { + "axis": "Median TPOT", + "unit": "ms", + "higher_is_better": false, + "on": 18.66, + "off": 18.78, + "on_over_off": 0.9936102236421724, + "primary": 16.21277156906823, + "on_over_primary": 1.1509444835206801, + "llama": 10.294607833333334, + "on_over_llama": 1.8125994017547729 + }, + { + "axis": "P99 TPOT", + "unit": "ms", + "higher_is_better": false, + "on": 19.53, + "off": 19.12, + "on_over_off": 1.0214435146443515, + "primary": 19.9875987910976, + "on_over_primary": 0.9771058646973937, + "llama": 12.387097034, + "on_over_llama": 1.576640591931606 + }, + { + "axis": "Mean ITL", + "unit": "ms", + "higher_is_better": false, + "on": 18.75, + "off": 18.81, + "on_over_off": 0.9968102073365231, + "primary": 16.651747721092153, + "on_over_primary": 1.1260079310623994, + "llama": 10.769006841666668, + "on_over_llama": 1.7411076318991503 + }, + { + "axis": "Median ITL", + "unit": "ms", + "higher_is_better": false, + "on": 18.63, + "off": 18.63, + "on_over_off": 1.0, + "primary": 16.197673743590713, + "on_over_primary": 1.1501651592020574, + "llama": 8.36639149999997, + "on_over_llama": 2.2267664619806595 + }, + { + "axis": "P99 ITL", + "unit": "ms", + "higher_is_better": false, + "on": 19.12, + "off": 21.04, + "on_over_off": 0.9087452471482891, + "primary": 21.694974261336043, + "on_over_primary": 0.8813101029612622, + "llama": 52.012814360000014, + "on_over_llama": 0.36760171960054644 + }, + { + "axis": "Mean E2EL", + "unit": "ms", + "higher_is_better": false, + "on": 1080.55, + "off": 1308.74, + "on_over_off": 0.8256414566682457, + "primary": 1020.3545452095568, + "on_over_primary": 1.0589946456092676, + "llama": 262.52860775, + "on_over_llama": 4.115932390229194 + }, + { + "axis": "Median E2EL", + "unit": "ms", + "higher_is_better": false, + "on": 666.34, + "off": 898.86, + "on_over_off": 0.7413167790312174, + "primary": 1007.8902754466981, + "on_over_primary": 0.6611235530620408, + "llama": 207.742432, + "on_over_llama": 3.2075296008857737 + }, + { + "axis": "P99 E2EL", + "unit": "ms", + "higher_is_better": false, + "on": 3755.76, + "off": 3973.57, + "on_over_off": 0.945185311948701, + "primary": 1068.1999568548054, + "on_over_primary": 3.5159709339985494, + "llama": 629.9159609899998, + "on_over_llama": 5.96231915460168 + }, + { + "axis": "Prefill input tokens per summed TTFT", + "unit": "tokens/s", + "higher_is_better": true, + "on": 224.12, + "off": 173.86, + "on_over_off": 1.2890831703669619, + "primary": 231.6444107412151, + "on_over_primary": 0.9675174086128886, + "llama": 1767.4431892425148, + "on_over_llama": 0.12680464150932774 + }, + { + "axis": "Sampled whole-device VRAM peak", + "unit": "bytes", + "higher_is_better": false, + "on": 4863766528, + "off": 4856680448, + "on_over_off": 1.0014590377266674, + "primary": 24477634560, + "on_over_primary": 0.1987024733161144, + "llama": 4246298624, + "on_over_llama": 1.1454132077546508 + }, + { + "axis": "Sampled process-tree RSS peak", + "unit": "bytes", + "higher_is_better": false, + "on": 4012371968, + "off": 4012179456, + "on_over_off": 1.000047981901635, + "primary": 28651687936, + "on_over_primary": 0.14003963665116473, + "llama": 3193577472, + "on_over_llama": 1.2563878606919232 + }, + { + "axis": "Sampled process-tree PSS peak", + "unit": "bytes", + "higher_is_better": false, + "on": 4007190528, + "off": 4006950912, + "on_over_off": 1.0000598000837202, + "primary": 8301648896, + "on_over_primary": 0.4826981456576407, + "llama": 3186742272, + "on_over_llama": 1.2574567335453477 + } + ], + "monitors": { + "primary": { + "start": { + "event": "start", + "argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/python-gpu-named-under-lock.sh", + "rdna3-wmma-primary-retry", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py", + "--output", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json", + "--prompt-ids-output", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids-retry.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry-monitor.jsonl", + "--timeout-seconds", + "600", + "--docker-name", + "rdna3-wmma-primary-retry", + "--", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/python-gpu-named-under-lock.sh", + "rdna3-wmma-primary-retry", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_primary.py", + "--output", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry.json", + "--prompt-ids-output", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids-retry.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.25, + "timeout_seconds": 600.0, + "docker_name": "rdna3-wmma-primary-retry", + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry-monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/primary-model-retry-monitor.stderr.log", + "utc": "2026-09-14T04:51:53.948464+00:00", + "elapsed_seconds": 0.0010190079919993877 + }, + "end": { + "event": "end", + "status": "COMMAND_FAILED", + "exit_code": 137, + "samples": 448, + "sampled_peaks": { + "rss_bytes": 28651687936, + "pss_bytes": 8301648896, + "device_vram_used_bytes": 24477634560 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "ecf55f50e3cd1e86388b82661af8b4333989c48d1c6cc6a45ae9c55df29df355", + "command_stderr_sha256": "fe8990df5242966a82d1aa900522fd9fbe55414f690b32c685455466c6305545", + "utc": "2026-09-14T04:55:54.959212+00:00", + "elapsed_seconds": 241.01175822783262 + }, + "samples": 448, + "busy_samples": 70, + "active_sclk_mhz_over_busy_samples": { + "min": 6.0, + "mean": 756.8142857142857, + "median": 84.5, + "max": 3078.0, + "count": 70 + } + }, + "llama": { + "start": { + "event": "start", + "argv": [ + "env", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama", + "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/model.gguf", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids-retry.json", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model-monitor.jsonl", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "HIP_VISIBLE_DEVICES=0", + "ROCR_VISIBLE_DEVICES=0", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/capture_llama", + "/home/vikash/oracle/rdna3-wmma-latest/qwen35-4b-text/model.gguf", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/prompt-ids-retry.json", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model-monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/llama-model-monitor.stderr.log", + "utc": "2026-09-14T04:56:04.421093+00:00", + "elapsed_seconds": 0.001394507009536028 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 77, + "sampled_peaks": { + "rss_bytes": 3193577472, + "pss_bytes": 3186742272, + "device_vram_used_bytes": 4246298624 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "3a9a3cdad85b99d2d4b5543570d517097184f056df3a4a7c5fae9611df8412cf", + "command_stderr_sha256": "3c3b975bc3a957027caddfe946b35ab709890a491d2adea64b7cf071396ab12f", + "utc": "2026-09-14T04:56:09.644269+00:00", + "elapsed_seconds": 5.224561583716422 + }, + "samples": 77, + "busy_samples": 37, + "active_sclk_mhz_over_busy_samples": { + "min": 14.0, + "mean": 1777.7837837837837, + "median": 1969.0, + "max": 3018.0, + "count": 37 + } + }, + "on1": { + "start": { + "event": "start", + "argv": [ + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.output-token-ids.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on1.monitor.stderr.log", + "utc": "2026-09-14T04:57:24.440727+00:00", + "elapsed_seconds": 0.001378796063363552 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 115, + "sampled_peaks": { + "rss_bytes": 4012371968, + "pss_bytes": 4007190528, + "device_vram_used_bytes": 4863766528 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "7c869eecc39aa95e72d6943643c0ff70f0134171646fb8315f051d5561a65ee7", + "command_stderr_sha256": "6acb9bd6d6b659ac3bb72530b17951ae9c45e69eeb268735eb277c082462f4d8", + "utc": "2026-09-14T04:57:36.465924+00:00", + "elapsed_seconds": 12.026571130380034 + }, + "samples": 115, + "busy_samples": 75, + "active_sclk_mhz_over_busy_samples": { + "min": 21.0, + "mean": 2142.9466666666667, + "median": 2798.0, + "max": 3058.0, + "count": 75 + } + }, + "off1": { + "start": { + "event": "start", + "argv": [ + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.output-token-ids.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off1.monitor.stderr.log", + "utc": "2026-09-14T04:57:36.570099+00:00", + "elapsed_seconds": 0.001308363862335682 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 122, + "sampled_peaks": { + "rss_bytes": 4012204032, + "pss_bytes": 4006950912, + "device_vram_used_bytes": 4856676352 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "4156753bf1cec63392b803209dd2a78cda09ad0f2017934af59815c86567c738", + "command_stderr_sha256": "6acb9bd6d6b659ac3bb72530b17951ae9c45e69eeb268735eb277c082462f4d8", + "utc": "2026-09-14T04:57:50.309050+00:00", + "elapsed_seconds": 13.74025477701798 + }, + "samples": 122, + "busy_samples": 84, + "active_sclk_mhz_over_busy_samples": { + "min": 5.0, + "mean": 2130.345238095238, + "median": 2482.0, + "max": 3060.0, + "count": 84 + } + }, + "off2": { + "start": { + "event": "start", + "argv": [ + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.output-token-ids.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off2.monitor.stderr.log", + "utc": "2026-09-14T04:57:50.413544+00:00", + "elapsed_seconds": 0.0010882681235671043 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 129, + "sampled_peaks": { + "rss_bytes": 4012179456, + "pss_bytes": 4006976512, + "device_vram_used_bytes": 4856684544 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "95af05cfba9de92c858124bf59a3a018f40b0735e39c5e43cd1b0fc41b13c474", + "command_stderr_sha256": "6acb9bd6d6b659ac3bb72530b17951ae9c45e69eeb268735eb277c082462f4d8", + "utc": "2026-09-14T04:58:04.129148+00:00", + "elapsed_seconds": 13.716685712803155 + }, + "samples": 129, + "busy_samples": 90, + "active_sclk_mhz_over_busy_samples": { + "min": 5.0, + "mean": 2044.3111111111111, + "median": 2420.5, + "max": 3056.0, + "count": 90 + } + }, + "on2": { + "start": { + "event": "start", + "argv": [ + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.output-token-ids.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on2.monitor.stderr.log", + "utc": "2026-09-14T04:58:04.233427+00:00", + "elapsed_seconds": 0.0010024858638644218 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 114, + "sampled_peaks": { + "rss_bytes": 4012462080, + "pss_bytes": 4007209984, + "device_vram_used_bytes": 4863766528 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "64c2d394869e055a2de61e2e9d8efad876dc04a5c9da6b40f5fb72b381566d8d", + "command_stderr_sha256": "6acb9bd6d6b659ac3bb72530b17951ae9c45e69eeb268735eb277c082462f4d8", + "utc": "2026-09-14T04:58:16.216499+00:00", + "elapsed_seconds": 11.984067692887038 + }, + "samples": 114, + "busy_samples": 74, + "active_sclk_mhz_over_busy_samples": { + "min": 0.0, + "mean": 2087.9864864864867, + "median": 2647.0, + "max": 3057.0, + "count": 74 + } + }, + "on3": { + "start": { + "event": "start", + "argv": [ + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "-u", + "VT_ROCM_QUANT_WMMA", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.output-token-ids.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/on3.monitor.stderr.log", + "utc": "2026-09-14T04:58:16.320033+00:00", + "elapsed_seconds": 0.0009346539154648781 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 113, + "sampled_peaks": { + "rss_bytes": 4012367872, + "pss_bytes": 4007186432, + "device_vram_used_bytes": 4863778816 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "1d6e9ebf36719533dd25ce6a8ce5ac01b77b5bcc31829eba366e9d1fbe685e38", + "command_stderr_sha256": "6acb9bd6d6b659ac3bb72530b17951ae9c45e69eeb268735eb277c082462f4d8", + "utc": "2026-09-14T04:58:28.159726+00:00", + "elapsed_seconds": 11.840623020660132 + }, + "samples": 113, + "busy_samples": 75, + "active_sclk_mhz_over_busy_samples": { + "min": 6.0, + "mean": 2074.5333333333333, + "median": 2356.0, + "max": 3060.0, + "count": 75 + } + }, + "off3": { + "start": { + "event": "start", + "argv": [ + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.output-token-ids.json" + ], + "monitor_argv": [ + "/home/vikash/oracle/rdna3-wmma-latest/adapters/monitor_command.py", + "--output-jsonl", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.monitor.jsonl", + "--repo", + "/home/vikash/vllm.cpp-rdna3-wmma", + "--sysfs-device", + "/sys/class/drm/card1/device", + "--interval-seconds", + "0.05", + "--timeout-seconds", + "600", + "--", + "env", + "VT_ROCM_QUANT_WMMA=0", + "/home/vikash/vllm.cpp-rdna3-wmma/build-rdna3-wmma-operator/examples/vllm-bench", + "--model", + "/home/vikash/models/Qwen3.5-4B-Q4_K_M-unsloth-e87f1764.gguf", + "--dataset-path", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/workload-eight.json", + "--num-prompts", + "8", + "--input-len", + "256", + "--output-len", + "16", + "--concurrency", + "1", + "--max-num-batched-tokens", + "512", + "--num-blocks", + "64", + "--temperature", + "0", + "--seed", + "0", + "--skip-chat-template", + "--ignore-eos", + "--output-token-ids", + "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.output-token-ids.json" + ], + "monitor_sha256": "e1a783c81649ea3ea13f15ad03308272cdae67249fb38390bfa005f4f1216f1d", + "helper_sha256": "d2b806bece74a05d55c8fdf6b8a217e603c1a3ae30fa31891221c8a6324157c8", + "boot_id": "2c176325-618c-43da-9f8e-ea0491635f38", + "sysfs_device": "/sys/class/drm/card1/device", + "resolved_device": "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0", + "interval_seconds": 0.05, + "timeout_seconds": 600.0, + "docker_name": null, + "device_baseline": { + "mem_info_vram_used": 337829888, + "mem_info_vram_total": 25753026560, + "gpu_busy_percent": 0, + "pp_dpm_sclk": "S: 0Mhz *\n1: 500Mhz \n2: 2482Mhz", + "scope": "whole device; VRAM includes allocations by other processes" + }, + "stdout_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.monitor.stdout.log", + "stderr_log": "/home/vikash/oracle/rdna3-wmma-latest/adapters/native-ab-model-gguf/off3.monitor.stderr.log", + "utc": "2026-09-14T04:58:28.263478+00:00", + "elapsed_seconds": 0.0010294672101736069 + }, + "end": { + "event": "end", + "status": "COMPLETE", + "exit_code": 0, + "samples": 129, + "sampled_peaks": { + "rss_bytes": 4012167168, + "pss_bytes": 4006914048, + "device_vram_used_bytes": 4856680448 + }, + "peak_scope": "maximum observed samples, not a continuous or process-GPU peak", + "command_stdout_sha256": "e117c438afe0594bbafff02325f76396a5f2293820548bf90b2bbeca70a8f62a", + "command_stderr_sha256": "6acb9bd6d6b659ac3bb72530b17951ae9c45e69eeb268735eb277c082462f4d8", + "utc": "2026-09-14T04:58:41.958698+00:00", + "elapsed_seconds": 13.696245082188398 + }, + "samples": 129, + "busy_samples": 90, + "active_sclk_mhz_over_busy_samples": { + "min": 4.0, + "mean": 2033.3444444444444, + "median": 2482.0, + "max": 3062.0, + "count": 90 + } + } + }, + "floor_disposition": "FAILING for below-floor model axes; accepted cross-engine comparison and clock attribution remain PENDING. Architecture-admission correctness is recorded separately." +} diff --git a/docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-HANDOFF.md b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-HANDOFF.md new file mode 100644 index 000000000..cbee8744b --- /dev/null +++ b/docs/bench-evidence/rocm-rdna3-quant-wmma/model-logs-HANDOFF.md @@ -0,0 +1,108 @@ +# Latest upstream oracle preparation + +READY for the coordinating task's GPU gates. Preparation ran no GPU workload. +Both native builds finished with exit code 0. No upstream source patch was needed. + +## Source identities + +- vLLM: `39545e475d3627287ff69c25465dc0bd405f67e1` in `../vllm-source`. +- llama.cpp: `093a2f86c3e37c54fa3e1f9efb17b304f3433abd` in `../llama-source`. +- GGUF plugin: `d4c1f0d082fc7cd4350da56689109a01c1f29d6c` in `../plugin-source`. +- All three source worktrees are clean. +- Live remote `main`, `master`, and `main` respectively matched these commits during preparation. + +## Execution + +The Python interpreter is +`/home/vikash/oracle/rdna3-wmma-latest/.venv/bin/python` inside image +`sha256:80aab4c182a1f3eeebe286173977e57fcaf10a049b41f475655b35d285de31dc`. +The venv inherits Torch and Triton from that immutable image. + +Run `../python-gpu-under-lock.sh