{ "schemaVersion": 1, "manifestKernelNames": [ "turboquant_q3", "turboquant_q4", "qjl", "polarquant", "mtp", "turbo3_tcq" ], "requiredRuntimeCapabilityKeys": [ "mtp", "turbo3", "turbo4", "turbo3_tcq", "qjl_full", "polarquant" ], "latestReports": [ "verify/HARDWARE_VERIFICATION.md", "verify/CUDA_VERIFICATION.md", "reports/porting/2026-05-14/kokoro-llama-cpp-feasibility.md", "reports/porting/2026-05-14/smoke-pipeline-audit.md" ], "hardwareEvidence": { "schemaVersion": 1, "requiredForRuntimeReady": true, "requiredFields": [ "schemaVersion", "runner", "status", "passRecordable", "exitCode", "host", "target", "requirements", "evidence" ], "passCriteria": { "status": "pass", "passRecordable": true, "graphSmoke": "required", "exitCode": 0 }, "failClosedHosts": [ "Darwin CUDA/ROCm/GH200", "non-Windows Windows runner", "Linux CUDA without nvcc/nvidia-smi/NVIDIA GPU", "Linux ROCm without hipcc/rocminfo/gfx GPU agent", "GH200 without aarch64 Linux plus Hopper/compute-capability-9.x GPU" ], "reportOptions": { "cuda": "verify/cuda_runner.sh --report ", "gh200": "verify/gh200_runner.sh --report ", "rocm": "verify/rocm_runner.sh --report ", "windows": "verify/windows_runner.ps1 -Report " } }, "gemmaRuntimeDispatch": { "status": "code-gated-pending-hardware", "requiredPath": [ "turboquant_q4_manifest", "flash_attention_head_dim_512", "stock_kv_q8_0_or_f16", "draft_mtp" ], "assertion": "plugins/plugin-local-inference/src/services/active-model.ts assertGemmaRuntimeDispatchContract refuses managed Gemma bundles that omit turboquant_q4/mtp, disable flash attention, select legacy head_dim=128 KV cache types, or claim MTP without drafter-backed load args.", "legacyKvScope": "QJL, PolarQuant, and turbo3_tcq 8/8 fixture/runtime gates remain valid only for legacy/non-Gemma KV-cache routes and shared FFI symbols. They do not prove the shipped Gemma decode graph, which uses stock KV plus Gemma flash attention." }, "runtimeSmoke": { "vulkanBuiltForkGraph": { "makeTarget": "vulkan-dispatch-smoke", "source": "verify/vulkan_dispatch_smoke.cpp", "status": "runtime-ready", "description": "Native-Linux graph gate. Links against libggml-vulkan from the managed output or explicit ELIZA_MTP_VULKAN_BIN_DIR (headers come from the in-repo llama.cpp submodule by default \u2014 ELIZA_MTP_LLAMA_DIR overrides), rejects macOS/MoltenVK and software Vulkan by default, requires ggml_backend_supports_op for GGML_OP_ATTN_SCORE_QJL and GGML_OP_FUSED_ATTN_QJL_TBQ (the two fused attention graph ops the committed fork pin declares in ggml.h), then runs real graph execution and numeric comparison vs the C reference (qjl_ref_score and eliza_fused_attn_qjl_tbq3). The standalone TurboQuant/PolarQuant score+softmax+V-mix kernels are validated by `make vulkan-verify` against the JSON fixtures and by the fork llama-server --cache-type-{k,v} whitelist; they are not public ggml graph builders in the fork pin, so they are not part of this graph-dispatch gate. Verified PASS on Intel ARL (Mesa ANV, Vulkan 1.4) \u2014 see verify/vulkan-runtime-dispatch-evidence.json." }, "linuxNativeVulkan": { "makeTarget": "vulkan-native-smoke", "script": "verify/linux_vulkan_smoke.sh", "status": "needs-hardware", "fixtures": [ "verify/fixtures/turbo3.json", "verify/fixtures/turbo4.json", "verify/fixtures/turbo3_tcq.json", "verify/fixtures/qjl.json", "verify/fixtures/polar.json", "verify/fixtures/polar_qjl.json" ], "description": "Rejects non-Linux/MoltenVK and software ICDs by default, writes hardware-results evidence, runs standalone Vulkan fixtures, builds linux-x64-vulkan, dumps CAPABILITIES diagnostics, then runs the built-fork graph gate against the managed output directory. Build failure or symbol-only staging exits non-zero." }, "androidVulkan": { "makeTarget": "android-vulkan-smoke", "script": "verify/android_vulkan_smoke.sh", "status": "needs-hardware", "fixtures": [ "verify/fixtures/turbo3.json", "verify/fixtures/turbo4.json", "verify/fixtures/turbo3_tcq.json", "verify/fixtures/qjl.json", "verify/fixtures/polar.json", "verify/fixtures/polar_qjl.json" ], "description": "Cross-compiles vulkan_verify with the Android NDK, pushes verifier/SPIR-V/fixtures through adb, records physical-device evidence, and runs on Adreno/Mali hardware. Standalone fixture success exits non-zero unless ELIZA_ANDROID_VULKAN_GRAPH_EVIDENCE proves Android Vulkan graph dispatch for all six graph routes or all five runtime capability keys." } }, "fusedAttn": { "capabilityKey": "fused_attn", "description": "Fused attention forward (QJL-K score -> online softmax -> quantized-V mix, score vector never materialized). C reference: eliza_fused_attn_qjl_tbq3 (bit-exact to the fork's GGML_OP_FUSED_ATTN_QJL_TBQ CPU op) and eliza_fused_attn_qjl_polar in packages/inference/verify/qjl_polar_ref.{h,c}. This is an optimization on top of the existing five score/softmax/V-mix kernels (AGENTS.md \u00a73) \u2014 a backend that cannot dispatch the fused op routes through the standalone path, it does not silently degrade. NOT in requiredRuntimeCapabilityKeys / manifestKernelNames yet: no backend has verified a fused dispatch, so the capability is not part of the build-script required-kernel gate. Promote it (and add a manifest kernel name) only once a backend reports a runtime-ready fused smoke.", "contractDocs": [ "verify/fused-attn-op-contract.md" ], "fixtures": [ { "path": "verify/fixtures/fused_attn_qjl_tbq.json", "kernelField": "fused_attn_qjl_tbq", "shape": "cases", "requiredFields": [ "head_dim", "proj_dim", "v_blocks_per_token", "sm_scale", "cases" ], "caseRequiredFields": [ "n_heads", "n_kv_heads", "n_kv", "q_sketch", "k_blocks", "v_blocks", "expected_out" ] }, { "path": "verify/fixtures/fused_attn_qjl_polar.json", "kernelField": "fused_attn_qjl_polar", "shape": "cases", "requiredFields": [ "head_dim", "proj_dim", "v_blocks_per_token", "use_qjl", "sm_scale", "cases" ], "caseRequiredFields": [ "n_heads", "n_kv_heads", "n_kv", "q_sketch", "k_blocks", "v_blocks", "expected_out" ] }, { "path": "verify/fixtures/polar_preht.json", "kernelField": "polar_preht", "shape": "scores", "requiredFields": [ "head_dim", "n_rows", "block_bytes", "hadamard_inv_scale", "q", "k_blocks", "expected_scores" ] } ], "selfTest": { "makeTarget": "reference-test", "note": "gen_fixture --self-test recomputes fused == score->softmax->V-decode->mix independently (tol 1e-3) and round-trips the TBQ V-cache blocks." }, "verifyTargets": { "metal": "metal-verify-fused", "vulkan": "vulkan-verify-fused", "cuda": "cuda-verify" }, "runtimeStatus": { "metal": "needs-runtime-smoke", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "runtime-ready" }, "runtimeEvidence": { "vulkan": { "key": "fusedAttn", "smokeTarget": "vulkan-dispatch-smoke", "evidenceFile": "verify/vulkan-runtime-dispatch-evidence.json" }, "cuda": { "key": "fusedAttn", "smokeTarget": "cuda-verify-fused", "evidenceFile": "verify/cuda-runtime-dispatch-evidence.json" }, "cpu": { "key": "fusedAttn", "smokeTarget": "cpu-dispatch-smoke", "evidenceFile": "verify/cpu-runtime-dispatch-evidence.json" } }, "nextGate": "Vulkan fused dispatch verified on Intel ANV (GGML_OP_FUSED_ATTN_QJL_TBQ graph route, vulkan-dispatch-smoke 7/7, max diff 4.5e-8; standalone fused 1920/1920 PASS). CUDA fused verified on NVIDIA GeForce RTX 5080 Laptop (Blackwell sm_120, NATIVE SASS via CUDA 12.8 nvcc V12.8.93 \u2014 no longer compute_90 PTX JIT): make cuda-verify-fused 1920/1920 outputs PASS across 4 GQA/n_kv cases, max diff 4.47e-7, against the warp-cooperative kernel that mirrors the production cuda/fused-attn-qjl-tbq.cu (compiles clean into the fork libggml-cuda via patchCudaKernels + -DGGML_CUDA_FUSED_ATTN_QJL=ON; cuobjdump --list-elf confirms sm_80/86/89/90/90a/100/120 cubins with the fat-binary arch list). build-llama-cpp-mtp.mjs resolveNvcc()+cudaCompilerFlags() pin the 12.8 side-by-side toolkit; P3 occupancy/__ldg/vectorized-load + DP4A-as-default-standalone-QJL landed (nsys: DP4A ~2.27x faster than fp32 qjl_score); P2 cp.async deferred (on-cache QJL/TBQ blocks have no 4B alignment at a token stride). **Full ggml-cuda integration build verified-here 2026-05-12** \u2014 the non-fused linux-x64-cuda target (forkCommit a61c93aaa5 = v1.2.0-eliza, builtAt 2026-05-12T17:16:58Z) is installed at ~/.eliza/local-inference/bin/mtp/linux-x64-cuda/ with libggml-cuda.so.0.9.7 (473 MB, real sm_120 SASS), llama-bench + llama-server + llama-cli + llama-completion. llama-bench on the bundle 0_6b/1_7b GGUFs reports pp512 19932 / tg128 345 (0_6b) and pp512 11931 / tg128 195 (1_7b) at d=0; pp512 1956 / tg128 108 (0_6b) and pp512 1797 / tg128 85 (1_7b) at d=16000. llama-server boots clean (4 GPU slots, /health ok, /completion 32 tokens at 420 tps decode / 1093 tps prefill). cuda-verify + cuda-verify-fused re-run against this real install: 8/8 + 1920/1920 PASS. The linux-x64-cuda-fused build is queued. CPU fused dispatch verified on Intel Core Ultra 9 275HX (GGML_OP_FUSED_ATTN_QJL_TBQ CPU graph route, cpu-dispatch-smoke MT-vs-ST bit-identical, no NaN). Remaining: run metal-verify-fused on an Apple-Silicon Mac (metal/fused_attn_*.metal + metal/polar_preht.metal authored, byte-faithful to the Vulkan ports). fused_attn stays out of requiredRuntimeCapabilityKeys / manifestKernelNames \u2014 it is an optimization on top of the five required kernels (AGENTS.md \u00a73), not a required kernel \u2014 until all backends report a runtime-ready fused smoke and the manifest schema adds a fused kernel name." }, "kernels": [ { "id": "istft", "family": "iSTFT", "manifestKernelNames": [], "runtimeCapabilityKeys": [], "description": "Native GGML_OP_ISTFT (inverse short-time Fourier transform). Promotes J2's CPU post-graph iSTFT to a backend-dispatched graph op. Enables Vulkan/CUDA acceleration for the Kokoro iSTFTNet vocoder head. Not a KV-cache kernel; not in requiredRuntimeCapabilityKeys or manifestKernelNames until all backends report runtime-ready smoke.", "fixtures": [ { "path": "verify/fixtures/istft.json", "kernelField": "istft", "shape": "cases", "requiredFields": [ "n_fft", "hop_length", "win_length", "cases" ], "caseRequiredFields": [ "mag", "phase", "expected_pcm" ] } ], "metal": { "source": "llama.cpp/ggml/src/ggml-metal/eliza-kernels/istft.metal", "verifySymbol": "kernel_istft_f32" }, "vulkan": { "source": "llama.cpp/ggml/src/ggml-vulkan/vulkan-shaders/istft.comp", "spirvName": "istft_f32" }, "cuda": { "source": "llama.cpp/ggml/src/ggml-cuda/istft.cu", "opFunction": "ggml_cuda_op_istft" }, "verifyHarness": { "cpp": "verify/istft-verify.cpp", "mjs": "verify/istft-verify.mjs", "makeTargets": [ "istft-verify" ], "tolerance": 1e-3 }, "runtimeStatus": { "metal": "authored-only", "vulkan": "authored", "cuda": "authored", "cpu": "authored" }, "notes": "K5 wave: CPU + Vulkan + CUDA kernels authored. Metal authored only — hardware blocked (no Mac available). Kokoro wiring: ggml_istft() replaces the CPU post-graph call; falls back to CPU overlap-add when backend does not support the op. Verify harness generates 10 random (n_fft, hop, win, T) cases and checks max-abs error <= 1e-3 across CPU/Vulkan/CUDA." }, { "id": "turbo3", "family": "TurboQuant", "manifestKernelNames": [ "turboquant_q3" ], "runtimeCapabilityKeys": [ "turbo3" ], "fixtures": [ { "path": "verify/fixtures/turbo3.json", "kernelField": "turbo3", "requiredFields": [ "head_dim", "n_kv", "blocks_per_kv", "q", "k_blocks", "expected_scores" ] } ], "metal": { "source": "metal/turbo3.metal", "verifySymbol": "kernel_turbo3_dot", "multiBlockSymbol": "kernel_turbo3_dot_multi" }, "vulkan": { "source": "vulkan/turbo3.comp", "spirv": "vulkan/turbo3.spv" }, "cuda": { "fixtureGate": true }, "runtimeStatus": { "metal": "runtime-ready", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "reference-only" } }, { "id": "turbo4", "family": "TurboQuant", "manifestKernelNames": [ "turboquant_q4" ], "runtimeCapabilityKeys": [ "turbo4" ], "fixtures": [ { "path": "verify/fixtures/turbo4.json", "kernelField": "turbo4", "requiredFields": [ "head_dim", "n_kv", "blocks_per_kv", "q", "k_blocks", "expected_scores" ] } ], "metal": { "source": "metal/turbo4.metal", "verifySymbol": "kernel_turbo4_dot", "multiBlockSymbol": "kernel_turbo4_dot_multi" }, "vulkan": { "source": "vulkan/turbo4.comp", "spirv": "vulkan/turbo4.spv" }, "cuda": { "fixtureGate": true }, "runtimeStatus": { "metal": "runtime-ready", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "reference-only" } }, { "id": "turbo3_tcq", "family": "TurboQuant", "manifestKernelNames": [ "turbo3_tcq" ], "runtimeCapabilityKeys": [ "turbo3_tcq" ], "requiredWhen": "ctx > 65536", "runtimeRouteScope": "legacy-tier-only", "gemma4Status": "not-routed; Gemma uses stock KV with flash attention, not the head_dim=128 TCQ KV-cache path", "fixtures": [ { "path": "verify/fixtures/turbo3_tcq.json", "kernelField": "turbo3_tcq", "requiredFields": [ "head_dim", "n_kv", "blocks_per_kv", "q", "k_blocks", "expected_scores" ] } ], "metal": { "source": "metal/turbo3_tcq.metal", "verifySymbol": "kernel_turbo3_tcq_dot", "multiBlockSymbol": "kernel_turbo3_tcq_dot_multi" }, "vulkan": { "source": "vulkan/turbo3_tcq.comp", "spirv": "vulkan/turbo3_tcq.spv" }, "cuda": { "fixtureGate": true }, "runtimeStatus": { "metal": "runtime-ready", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "reference-only" }, "kvCacheType": { "typeName": "tbq3_tcq", "ggmlType": "GGML_TYPE_TBQ3_TCQ", "status": "type-traits-added", "note": "ggml.c now has the [GGML_TYPE_TBQ3_TCQ] type-traits entry (to_float = dequantize_row_tbq3_tcq sliding-window lookup, from_float_ref = quantize_row_tbq3_tcq_ref Viterbi encoder in the orthogonal WHT basis, codebook in ggml/src/ggml-tcq-codebook.h) plus the ggml-cpu from_float (so ggml_cpy(K_cur -> K_view) can quantize). build-llama-cpp-mtp.mjs patchServerKvCacheTypeNames appends GGML_TYPE_TBQ3_TCQ to common/arg.cpp kv_cache_types, so `--cache-type-k tbq3_tcq` resolves. Like qjl1_256/q4_polar it is a cache type only (never a mul_mat operand); the score path consumes the WHT-rotated cache directly, matching the CUDA (ggml-cuda/turbo-tcq.cu) + Metal decode kernels. Fork branch: elizaOS/llama.cpp eliza/ws2-tbq3-tcq-traits @ 536ff214 (on top of the prior pin 2f80716c). Verified: ggml-base + ggml-cpu compile clean, symbols exported. CPU standalone *score graph op* stays reference-only (no public CPU ggml graph builder for TCQ in the pin \u2014 the reduced-optimization local mode `ELIZA_LOCAL_ALLOW_STOCK_KV=1` is the documented hatch)." } }, { "id": "qjl", "family": "QJL", "manifestKernelNames": [ "qjl" ], "runtimeCapabilityKeys": [ "qjl_full" ], "runtimeRouteScope": "legacy-tier-only", "gemma4Status": "not-routed; Gemma uses stock KV with flash attention, not the head_dim=128 QJL K-cache path", "fixtures": [ { "path": "verify/fixtures/qjl.json", "kernelField": "qjl", "requiredFields": [ "proj_dim", "n_heads", "n_kv_heads", "n_tokens", "q_sketch", "k_blocks", "expected_scores" ] } ], "metal": { "source": "metal/qjl.metal", "verifySymbol": "kernel_attn_score_qjl1_256", "multiBlockSymbol": "kernel_attn_score_qjl1_256_multi" }, "vulkan": { "source": "vulkan/qjl.comp", "spirv": "vulkan/qjl.spv" }, "cuda": { "fixtureGate": true }, "runtimeStatus": { "metal": "runtime-ready", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "runtime-ready" }, "cpuEvidence": { "key": "qjl", "smokeTarget": "cpu-dispatch-smoke", "evidenceFile": "verify/cpu-runtime-dispatch-evidence.json" } }, { "id": "polar", "family": "PolarQuant", "manifestKernelNames": [ "polarquant" ], "runtimeCapabilityKeys": [ "polarquant" ], "runtimeRouteScope": "legacy-tier-only", "gemma4Status": "not-routed; Gemma uses stock KV with flash attention, not the head_dim=128 PolarQuant V-cache path", "fixtures": [ { "path": "verify/fixtures/polar.json", "kernelField": "polar", "requiredFields": [ "head_dim", "n_rows", "use_qjl", "q", "k_blocks", "expected_scores" ] }, { "path": "verify/fixtures/polar_qjl.json", "kernelField": "polar", "requiredFields": [ "head_dim", "n_rows", "use_qjl", "q", "k_blocks", "expected_scores" ] } ], "metal": { "source": "metal/polar.metal", "verifySymbol": "kernel_mul_mv_q4_polar_f32" }, "vulkan": { "source": "vulkan/polar.comp", "spirv": "vulkan/polar.spv" }, "cuda": { "fixtureGate": true }, "runtimeStatus": { "metal": "runtime-ready", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "reference-only" } }, { "id": "mtp", "family": "MTP", "manifestKernelNames": [ "mtp" ], "runtimeCapabilityKeys": [ "mtp" ], "fixtures": [], "runtimeStatus": { "metal": "runtime-ready", "vulkan": "runtime-ready", "cuda": "runtime-ready", "cpu": "runtime-ready" } } ], "platformTargets": { "linux-x64-cpu": { "kernelVerification": "reference-only", "runtimeDispatch": "runtime-ready", "deviceRun": "verified", "nextGate": "2026-05-17: native Linux x64 CPU graph smoke passed on BEAST with the 0.6B Q4_POLAR GGUF; runtime_graph_smoke covered cache-backed Turbo3/Turbo4 through llama-bench. QJL/Polar SIMD arithmetic remains covered by reference/fixture paths rather than KV cache storage aliases." }, "linux-x64-cuda": { "kernelVerification": "verified", "runtimeDispatch": "verified", "deviceRun": "verified", "nextGate": "Run a full Eliza-1 bundle voice/runtime smoke on the CUDA host. Native sm_120 SASS is wired (CUDA 12.8 installed; build hook resolveNvcc()+cudaCompilerFlags() pin it; arch list = 90a;90;89;86;80;100;120;90-virtual with real 100/120 SASS); the full ggml-cuda integration build is pending a quiet host (RAM-contended this wave)." }, "linux-x64-rocm": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run ELIZA_MTP_SMOKE_MODEL=/models/eliza-1-smoke.gguf ./rocm_runner.sh on an AMD ROCm host." }, "linux-x64-vulkan": { "kernelVerification": "standalone-verified", "runtimeDispatch": "runtime-ready", "deviceRun": "verified", "nextGate": "Run a discrete Vulkan GPU e2e voice loop after the Intel ANV and Android Mali graph-dispatch smokes; current runtime evidence is target-scoped in verify/vulkan-runtime-dispatch-evidence.json." }, "linux-x64-sycl": { "kernelVerification": "compile-only", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Build with Intel oneAPI on a SYCL host and record whether upstream ggml-sycl is useful for Eliza-1 fallback routing; custom Eliza kernels remain CUDA/Vulkan/Metal/CPU." }, "linux-x64-openvino": { "kernelVerification": "compile-only", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Build with OpenVINO 2026 runtime and run CPU/GPU/NPU device-selection smoke; custom Eliza kernels remain CUDA/Vulkan/Metal/CPU." }, "linux-aarch64-cpu": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run on an arm64 Linux host and collect CPU backend parity." }, "linux-aarch64-cuda": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run ELIZA_MTP_SMOKE_MODEL=/models/eliza-1-smoke.gguf ./gh200_runner.sh on a GH200/H100/H200 aarch64 CUDA host." }, "linux-aarch64-cuda-fused": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run the fused libelizainference CUDA build and voice/runtime smoke on a GH200/H100/H200 aarch64 CUDA host." }, "android-arm64-cpu": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run CPU/NEON parity on a physical Android device." }, "android-arm64-vulkan": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Cross-compile vulkan_verify and run all fixtures on Adreno and Mali devices." }, "darwin-arm64-metal": { "kernelVerification": "standalone-verified", "runtimeDispatch": "verified", "deviceRun": "verified", "nextGate": "Run fused Metal smoke against a full Eliza-1 bundle after graph-dispatch smoke." }, "ios-arm64-metal": { "kernelVerification": "symbol-shipped", "runtimeDispatch": "symbol-shipped", "deviceRun": "needs-hardware", "nextGate": "Run physical-device XCTest/Capacitor smoke against the embedded metallib and GGML_OP_ATTN_SCORE_TBQ Turbo4 route." }, "ios-arm64-simulator-metal": { "kernelVerification": "symbol-shipped", "runtimeDispatch": "symbol-shipped", "deviceRun": "needs-hardware", "nextGate": "Run simulator smoke against the embedded metallib and GGML_OP_ATTN_SCORE_TBQ Turbo4 route." }, "windows-x64-cpu": { "kernelVerification": "compile-only", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run native Windows CPU binary and AVX2 QJL/Polar smoke." }, "windows-x64-cuda": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run pwsh -File packages/inference/verify/windows_runner.ps1 -Backend cuda -Model C:\\models\\eliza-1-smoke.gguf on NVIDIA hardware." }, "windows-x64-vulkan": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run pwsh -File packages/inference/verify/windows_runner.ps1 -Backend vulkan -Model C:\\models\\eliza-1-smoke.gguf on native Windows Vulkan." }, "windows-arm64-cpu": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run Snapdragon X native CPU smoke." }, "windows-arm64-vulkan": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run Snapdragon X native Vulkan smoke." }, "linux-x64-cpu-fused": { "kernelVerification": "reference-only", "runtimeDispatch": "needs-runtime-smoke", "deviceRun": "needs-hardware", "nextGate": "Run fused libelizainference CPU smoke with voice off/on regions." }, "linux-x64-cuda-fused": { "kernelVerification": "runtime-ready", "runtimeDispatch": "runtime-ready", "deviceRun": "verified", "nextGate": "Re-run on additional sm classes (sm_89 / sm_90 / sm_100 datacenter) to confirm no arch regression. 2026-05-12 CUDA-FINISH-4: fused build installed at ~/.eliza/local-inference/bin/mtp/linux-x64-cuda-fused/ (forkCommit a61c93aaa5, omnivoice pin 38f824023d12); cuda-verify-fused 1920/1920 PASS on RTX 5080 sm_120; cuda-hardware 6/6 fixture sets PASS against the fused install; e2e_loop_bench cuda 1-turn voice_rtf 0.4255 (PASS publish gate <= 0.5), tg 64.82 tok/s, first_token 43.3 ms, mtp 12/12, peak RSS 2340 MB, e2eOk true. Historical report artifacts were generated during CUDA-FINISH-4 but are not checked into this cleanup branch." }, "linux-x64-vulkan-fused": { "kernelVerification": "runtime-ready", "runtimeDispatch": "runtime-ready", "deviceRun": "verified", "nextGate": "Re-run e2e_loop_bench on a discrete Vulkan card (RDNA3 / Ada in pure-Vulkan / Intel BMG) to get a Vulkan voice-rtf number under the discrete-GPU class — the iGPU here is below the gate's hardware class. 2026-05-12 CUDA-FINISH-4: fused build installed at ~/.eliza/local-inference/bin/mtp/linux-x64-vulkan-fused/ (forkCommit a61c93aaa5, omnivoice pin 38f824023d12, fused SPIR-V baked in: eliza_fused_attn_qjl_tbq + eliza_fused_attn_qjl_polar); vulkan-verify-fused PASS on Intel ARL iGPU (Mesa ANV 25.2.8) — fused_attn_qjl_tbq 1920/1920 + 1536/1536 causal + fused_attn_qjl_polar 1920/1920 + 1536/1536 causal = 6912 outputs total, max diff 6.26e-07; e2e_loop_bench vulkan 1-turn ran end-to-end with mtp 31/31 and e2eOk true, but iGPU performance keeps voice_rtf at 1.7269 (publish gate FAIL on iGPU class). Reports: packages/inference/reports/porting/2026-05-12/e2e-loop-vulkan-2026-05-12.json." }, "darwin-arm64-metal-fused": { "kernelVerification": "standalone-verified", "runtimeDispatch": "needs-runtime-smoke", "deviceRun": "needs-hardware", "nextGate": "Run fused Metal smoke after full kernel dispatch lands." }, "windows-x64-cuda-fused": { "kernelVerification": "needs-hardware", "runtimeDispatch": "needs-hardware", "deviceRun": "needs-hardware", "nextGate": "Run Windows CUDA hardware runner first, then fused Windows CUDA voice/runtime smoke." } } }