hipengine 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hipengine-0.2.0 → hipengine-0.2.2}/CHANGELOG.md +76 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/PKG-INFO +12 -5
- {hipengine-0.2.0 → hipengine-0.2.2}/README.md +11 -4
- {hipengine-0.2.0 → hipengine-0.2.2}/WORKLOG.md +166 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/API.md +27 -4
- hipengine-0.2.2/hipengine/generation/qwen35_paro.py +332 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/llm.py +74 -21
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/__init__.py +2 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/gguf.py +2 -1
- hipengine-0.2.2/hipengine/loading/hf_cache.py +121 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/qwen35_paro.py +2 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/safetensors.py +3 -26
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/qwen35_paro_runner.py +431 -2
- hipengine-0.2.2/hipengine/server/__main__.py +124 -0
- hipengine-0.2.2/hipengine/server/api.py +1087 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/pyproject.toml +1 -1
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/llamacpp_bench_with_peak.py +2 -3
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_generation_qwen35_paro.py +108 -3
- hipengine-0.2.2/tests/test_hf_cache.py +63 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_llm_generate.py +88 -0
- hipengine-0.2.2/tests/test_server_api.py +384 -0
- hipengine-0.2.0/hipengine/generation/qwen35_paro.py +0 -155
- hipengine-0.2.0/hipengine/server/__main__.py +0 -55
- hipengine-0.2.0/hipengine/server/api.py +0 -580
- hipengine-0.2.0/tests/test_server_api.py +0 -194
- {hipengine-0.2.0 → hipengine-0.2.2}/.gitattributes +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/.github/workflows/publish.yml +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/.gitignore +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/AGENTS.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/CLAUDE.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/LICENSE +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/7900XTX.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/CHANGELOG.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/MTP.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/README.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/W7900.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/configs/llamacpp-mtp-qwen36-27b.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/prompts/mtpbench-code-general-ja.jsonl +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/.gitkeep +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-13-hipengine-qwen35-paro-optimal-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-13-source-lineage-qwen35-paro-optimal-4k-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-13-source-lineage-qwen35-paro-optimal-512-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-c1-parent-fixture-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-cn-correctness-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-ab-fused-lmhead128-graph-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-c1-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-graph-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-linear-qkv-z-full-qk-fused-graph-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-linear-qkv-z-fused-graph-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-lmhead128-qk-qkvz-fused-graph-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-14-hipengine-qwen35-paro-512-128-tokenizer-cache-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-0p8b-paro-512-128-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c1-parent-fixture-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c1-parent-mixed-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c1-router-qnorm-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c1-scheduler-serial-bench-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c2-native-compact-prefill-correctness-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c2-scheduler-serial-bench-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c2-scheduler-serial-runner-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c2-serial-slot-runner-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c4-native-compact-prefill-correctness-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c4-scheduler-serial-bench-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c4-scheduler-serial-runner-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c8-native-compact-prefill-correctness-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c8-scheduler-serial-bench-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-c8-scheduler-serial-runner-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-cn-generated-equality-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-dflash-ddtree-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-linear-attn-segment-prefill-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefill-compact-c8-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefill-full-attn-boundary-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefill-full-single-request-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefill-multiloop-512-4k-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefill-plan-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-layer0-attention-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-layer0-attn-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-layer0-decode-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-layer0-gated-recurrent-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-layer0-stage-bisect-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-layer3-fullattn-stage-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-prefill-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-scratch-restore-sweep.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-serial-fullattn-layer4-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-serial-suffix-full40-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-native-prefix-sweep-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-prefix-bisect-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-15-hipengine-qwen35-varlen-full-attn-prefill-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-gguf-q4k-pack8-bf16out-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-gguf-q4k-pack8-gemv-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-gguf-qwen35-e2e-correctness-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-gguf-vs-paro-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-aotriton-cast-glue-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-aotriton-gate-rotate-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-aotriton-threshold-sweep-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-aotriton-v3-memory-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-aotriton-v3-prefill-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-comparison-tables-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-decode-graph-replay-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-long-checkpoint-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-16-hipengine-qwen35-prefill-chunking-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gfx1151-shisa-qwen36-packed-canonical-sweep-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gfx1151-shisa-qwen36-packed-chunk256-sweep-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-aotriton-v3-prefill-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-bulk-prefill-q4km-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-decode-graph-replay-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-full-attn-gpu-prelude-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-local-quant-coverage-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-prefill-projection-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-q4km-parity-benchmark-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-gguf-resident-session-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-08b-gfx1151-dense-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-35b-qwen36-27b-gfx1151-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d11-rotate-dual-pack8-fusion-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d12-rmsnorm-producer-fusion-deferred.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d13-same-input-projection-fusions-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d14-selected-moe-postop-fold-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d15-router-coop-fold-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d16-kv-pack8-fusion-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d21-marlin-k-qweight-neutral-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d31-d33-grouped-gqa-long-context-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d42-dispatch-cap-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d44-launch-bounds-deferred.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d51-gdn-decode-audit.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-d52-w8a16-decode-audit.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-p33-moe-metadata-fanout-deferred.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-p52-prefill-chunk-autotune-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p11-rocblas-ab-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p12-shared-gate-up-token-tile-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p13-shared-down-combine-token-tile-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p14-moe-wmma-threshold-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p16-prefill-mcumode-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p31-gdn-rotate-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-p32-router-sigmoid-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-paro-dual-format-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-qwen36-w1-unroll600-ablation-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen35-rocprof-amdahl-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-512-128-paro-blocker-profile.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-bench-paro-comparison-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-bulk-moe-prefill-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-bulk-parity-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-decode-pack8-raw-partial.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-decode-profile-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-expert-pack8-sidecar-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-fast-bulk-default-promoted-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-full-attn-parity-fixed-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-intake-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-linear-recurrent-parity-fixed-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-native-attention-bulk-moe-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-public-generate-smoke.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-35b-a3b-q4km-selected-device-experts-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-packed-shared-decode-fusion-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-shisa-force-legacy-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-hipengine-qwen36-shisa-packed-vs-legacy-refresh-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-llamacpp-hip-qwen36-peak.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-llamacpp-upstream-gfx1151-qwen36-gguf-rerun-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-17-llamacpp-vulkan-qwen36-peak.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-gfx1100-qwen36-27b-paro-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-gfx1100-shisa-qwen36-packed-gt1k-default-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-p8_2-dense-q4k-wmma-prefill-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen35-gt1k-prefill-chunk-policy-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen35-int8-kv-128k-quality-perf-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen35-int8-kv-256k-capacity-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen35-int8-kv-256k-single-buffer-capacity-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen35-int8-kv-aotriton-query-reuse-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen35-int8-kv-scratch-release-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p8-compact-moe-wmma-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_a3-gdn-k2-chain-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c1-wmma-tile-sweep-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c10-combined-gap-analysis.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c11-hot-expert-final-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c3-selected-moe-profile.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c4-q4-hot-fulltile-v1-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c5-q4-sidemeta-v1-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c7-q5-opt-v1-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c8-q6-retain-legacy.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-p9_c9-tail-no-padding-not-retained.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-18-hipengine-qwen36-35b-a3b-q4km-prefill-q8-wmma-p8_1.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_b7-decode-gemv-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_c12-q4t16-repack-design.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_c13-q4t16-materializer.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_e2-e2e-correctness-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_h1-fastpath-safety-correctness-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_h2-decode-repack-design.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_h3-t16-512x128-bench.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_h3-t16-e2e-correctness-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-35b-a3b-q4km-p9_h3-t16-rocprof-512x16-summary.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-hipengine-qwen36-packed-int8-kv-readme-memory-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-19-llamacpp-mtp-qwen36-27b-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p10-b5-p9-e2e-gate-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p10-b6-acceptance-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p10-wave1-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_c14-q4t16-selected-wmma-prototype.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_c15-q4t16-replay-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_c16-selected-moe-alternatives.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_c17-no-q4-redesign-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d1-router-split-coop.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d10-q8t16-dual-split-64.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d11-rejected-q8t16-shared-silu.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d15-dense-dual-alpha-beta.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d16-q8t16-f32-ssm-out.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d17-key-bf16-rope.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d18-splitk-gqa-gate.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d2-bf16-key-rope-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d4-q4t16-silu-decode.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d6-q8t16-pair-dispatch.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d7-q8t16-qkv-gate-pair.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d8-q8t16-dcache-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_d9-q8t16-triple-qkv.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_g1-final-acceptance-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_h3-rejected-attn-gate-fusion.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_h3-rejected-attn128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_h3-rejected-q4t16-silu256.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_h3-rejected-q5q6-direct-probes.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-20-hipengine-qwen36-35b-a3b-q4km-p9_h3-rejected-q6dense-dpreload.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-aotriton-v2-v3-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-d10-splitk-rocprof.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-d11-comparison-review.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-d8-splitk-decode.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-d9-splitk-sweep.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-decode-repack-residency-audit.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-long-context-chunked-smoke.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-long-context-preflight-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-memory-decode-pass-review.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-no-prefill-scratch-kv.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-q8-t16-scale-broadcast-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-r0-rocprof-baseline.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-r1-post-x1-rocprof.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-retained-safe-mode.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-selected-moe-t16-launchbounds-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-task39-32k-smoke.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-task40-prefill-vs-paro-diagnosis.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-hipengine-qwen36-35b-a3b-q4km-p10-x1-correctness-plus-x2-wmma-blocker.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-21-local-rx7900xtx-gguf-vs-paro-memory-comparison.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-after-memory-decode-pass-review.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-direct-selected-moe-c1-4k128-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-final-gate-4k128-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-q8-t16-decode-probes-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-q8-t16-second-pass-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-router256-4k128-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-selected-moe-down64-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-selected-moe-t16-qk256-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-small-kernel-second-pass-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-22-hipengine-qwen36-35b-a3b-q4km-q4ks-small-kernel-third-pass-rejected.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-hipengine-qwen36-35b-a3b-q4ks-persistent-session-w7900-gap-review.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-hipengine-qwen36-35b-a3b-q4ks-w7900-cold-start-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-hipengine-qwen36-35b-a3b-q4ks-w7900-readme-sweep-accepted.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-hipengine-qwen36-35b-a3b-q4ks-w7900-therock713-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-hipengine-w7900-therock713-gguf-paro-512-4k-spot-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-paro-512-prefill-workspace-overlap-rootcause-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-paro-prefill-workspace-overlap-threshold-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4km-1024-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4km-131072-128-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4km-32768-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4km-4096-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4km-512-128-rerun.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4km-65536-128-blocked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-gguf-q4ks-4096-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-bf16kv-1024-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-bf16kv-131072-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-bf16kv-32768-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-bf16kv-4096-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-bf16kv-512-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-bf16kv-65536-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-int8kv-131072-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-hipengine-paro-int8kv-65536-128.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-llamacpp-hip-q4km-f16kv-sweep.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-llamacpp-hip-q4km-q8kv-maxctx.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-llamacpp-vulkan-q4km-f16kv-sweep.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-llamacpp-vulkan-q4km-q8kv-maxctx.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-paro-v011-current-regression-check.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-rocm7130423-current-head-paro-512-4k-check.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-rocm7130423-pure-current-head-paro-512-4k-check.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-rocm7130423-pure-packed-qwen36-paro-512-4k-check.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-rx7900xtx-rocm714-current-head-paro-512-4k-check.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-23-w7900-hipengine-therock713-paro-gguf-sweep-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-25-w7900-hipengine-gguf-q4ks-readme-persistent-5run.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-25-w7900-hipengine-paro-readme-persistent-5run.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/benchmarks/results/2026-05-25-w7900-hipengine-readme-persistent-5run-diagnostic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/BENCHMARK.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/DFLASH.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/ENVS.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/GGUF.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/GGUF_DECODE_REPACK.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/IMPLEMENTATION.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/KERNELS.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/KVCACHE.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/LESSONS-LEARNED.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/MARLIN.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/MTP.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/OPTIMIZE-DENSE.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/OPTIMIZE.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/PLAN.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/PREFILL.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/PUBLISH.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/README.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/RELAXED.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/ROOFLINE-gfx1151.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/ROOFLINE.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/SPECULATIVE-DECODE.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/TESTING.md +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/docs/source_lineage.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/fixtures/qwen35_paro/parent_512_32_seed1234.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hatch_build.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/benchmark/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/benchmark/correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/build.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/device.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/dtype.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/hip.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/memory.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/rocblas.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/core/tensor.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/dispatch/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/dispatch/batch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/dispatch/fusion.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/dispatch/kv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/distributed/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/generation/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/generation/batch_scheduler.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/generation/qwen35_gguf.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/generation/registry.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/backends.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/cpu_reference/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/cpu_reference/fixtures.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/cpu_reference/ops.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/cuda_sm86/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_release.toml +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/MANIFEST.vendor.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/aiter_hip_common.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/flash/aiter.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/kernel_cluster.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/lazy_tensor_internal.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/packed_kernel.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/triton_kernel.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/_internal/util.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/config.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/cpp_tune.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/dtypes.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/flash.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/runtime.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/util.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/include/aotriton/v2/flash.h +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_F_F_0_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_F_F_0_1___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_F_F_3_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_F_T_0_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_F_T_0_1___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_F_T_3_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_T_F_0_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_T_F_0_1___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_T_F_3_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_T_T_0_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_T_T_0_1___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/aotriton.images/amd-gfx11xx/flash/attn_fwd/FONLY__/357/274/212bf16@16_256_T_T_3_0___gfx11xx.aks2" +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/libaotriton_v2.so +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_runtime/0.11.2b/lib/libaotriton_v2.so.0.11.2 +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_wrap.cc +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/aotriton_wrap.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/paged_attn_decode.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/paged_attn_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/paged_kv_write.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/attention/paged_kv_write.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/common/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/convert/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/convert/cast.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/convert/cast.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/gguf_ops.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/gguf_ops.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/paro_combine.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/paro_combine.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/paro_silu.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/fused/paro_silu.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear/dense_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear/dense_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear/lm_head.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear/lm_head.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear_attn/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear_attn/conv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear_attn/conv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear_attn/gdn.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/linear_attn/gdn.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/moe/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/moe/group_scatter.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/moe/group_scatter.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/moe/prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/moe/router.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/moe/router.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/norm/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/norm/rmsnorm.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/norm/rmsnorm.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_expert_pack8_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_expert_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_selected_pack8_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_selected_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_selected_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_selected_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_t16_selected_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_k_t16_selected_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_pack8_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_selected_pack8_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_selected_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_selected_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_selected_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_t16_selected_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q4_k_t16_selected_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q6_k_embedding.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q6_k_embedding.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q6_k_pack8_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q6_k_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q6_k_t16_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q6_k_t16_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_pack8_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_t16_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_t16_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_t16_prefill.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_q8_0_t16_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_t16_selected_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/gguf_t16_selected_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/paro_awq_gemv.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/paro_awq_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/paro_marlin_k.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/paro_marlin_k.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/w8a16_linear.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/quant/w8a16_linear.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/rotary/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/rotary/paro_rotate.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/rotary/paro_rotate.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/rotary/qwen35_rotary.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/rotary/qwen35_rotary.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/runtime/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/runtime/state.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/runtime/state.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/smoke/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/smoke/smoke_add.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/smoke/smoke_add.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/wmma/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/wmma/paro_awq_wmma.hip +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1100/wmma/paro_awq_wmma.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/hip_gfx1151/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kernels/registry.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kvcache/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kvcache/policy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/kvcache/spans.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/layers/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/layers/base.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/materialize.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/qwen35_gguf.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/qwen35_gguf_expert_sidecar.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/loading/qwen35_gguf_materialize.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/models/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/models/base.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/models/qwen35.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/models/registry.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/models/toy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/base.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/bf16.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/fp16.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/gguf.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/gguf_k.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/gguf_q4_k.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/gguf_t16.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/registry.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/quant/w4_paro.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/gguf_embedding.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/gguf_linear.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/qwen35_gguf_runner.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/qwen35_paro.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/runtime/workspace.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/server/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/speculative/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/speculative/interfaces.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/tokenization/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/tokenization/gguf.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/util/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/hipengine/util/amdgpu_vram.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/__init__.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/check_fixtures.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/check_lineage.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/fetch_aotriton.sh +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/gdn_decode_probe.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/gguf_k_gemv_smoke.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/gguf_prefill_projection_smoke.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/gguf_q6_k_embedding_smoke.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/inspect_gguf.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/llamacpp_mtp_bench.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_batch_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_batch_packed_prefill_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_batch_serial_bench.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_batch_serial_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_compare_tables.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_decode_graph_fixture_gate.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_dflash_ddtree_blocker.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_e2e_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_aotriton_prefill_sweep.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_bench.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_build_expert_sidecar.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_bulk_parity.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_decode_graph_smoke.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_e2e_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_expert_pack8_smoke.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_moe_replay.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_p9_e2e_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_gguf_rocprof_summary.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_kv_e2e_fixture_gate.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_kv_int8_accuracy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_kv_policy_args.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_compact_prefill_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_prefill_boundary.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_prefill_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_prefill_fixture_gate.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_prefill_fullattn_stage_probe.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_prefill_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_native_prefill_stage_probe.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_paro_bench.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_paro_next_token.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_paro_packed_bench.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_readme_sweep.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/qwen35_rocprof_audit.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/resolve_worklog_conflict.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/smoke.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/strip_paro_safetensors.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/vendor_aotriton.sh +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/scripts/w8a16_decode_probe.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/_gguf_synthetic_weights.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/conftest.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/attention_decode_masked.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/full_attn_prefill_causal_gqa_gate.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/kv_int8_dequant_per_token_head.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/linear_basic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/paged_attn_decode_int8_per_token_head.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/rmsnorm_basic.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/cpu_reference/rotate_split_half.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/gguf/qwen35_0_8b_q4_1_e2e.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/gguf/qwen35_0_8b_q4_k_m_e2e.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/gguf/qwen35_0_8b_q8_0_e2e.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/gguf/qwen35_0_8b_ud_q4_k_xl_e2e.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/gguf/qwen36_35b_a3b_q4km_p9_e2e.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/fixtures/gguf/qwen36_35b_a3b_q4km_smoke.json +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_aotriton_discovery.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_build.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_cast_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_check_lineage.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_cpu_reference.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_dense_gemv_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_dispatch_batch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_fusion_spike.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_generation_batch_scheduler.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gfx1151_backend.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_e2e_acceptance.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_embedding_dispatch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_expert_pack8_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_gemv_decode_dispatch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_k_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_k_selected_pack8_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_k_selected_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_k_t16_selected_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_linear_dispatch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_ops.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_gemv.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_pack8_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_selected_dual_pack8_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_selected_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_t16_selected_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_tile16_repack.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q4_k_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q6_k_embedding.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q6_k_pack8_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q6_k_t16_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q8_0_pack8_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q8_0_t16_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q8_0_t16_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q8_0_wmma_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_q8_0_wmma_prefill_dual.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_quant_layout.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_reader.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_t16_repack.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_gguf_t16_selected_gemv_decode.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_hip_runtime.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_kernel_registry.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_kv_dispatch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_kvcache_policy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_kvcache_spans.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_llm_gguf_generate_path.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_lm_head_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_loading_materialize.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_loading_safetensors.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_memory_stats.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_model_quant_and_imports.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_paro_awq_gemv_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_paro_awq_wmma_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_paro_combine_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_paro_rotate_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_paro_silu_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_bench_memory_audit.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_decode_state.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_chunked_prefill.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_compact_moe_gemv_routing.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_compact_moe_wmma_resolver.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_compact_moe_wmma_routing.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_decode_graph_policy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_decode_repack_dispatch.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_decode_repack_semantics.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_expert_sidecar.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_fastpath_safety.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_full_attention_gpu.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_gdn_prefill_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_gdn_prefill_routing.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_mapping.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_materialize.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_moe_replay.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_p10_x2_layer_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_p9_e2e_correctness.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_rocprof_summary.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_runner.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_gguf_tokenizer.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_kv_e2e_fixture_gate.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_kv_int8_accuracy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_linear_attn_conv_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_linear_attn_gdn_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_moe_group_scatter_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_native_prefill_boundary.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_native_prefill_fullattn_stage_probe.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_paged_attn_decode_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_paged_kv_write_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_paro_layout.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_paro_marlin_k.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_prefill_workspace_policy.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_resident_batch_layout.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_rmsnorm_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_rotary_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_qwen35_router_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_runtime_state_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_runtime_workspace.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_smoke_add_plan.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_speculative_interfaces.py +0 -0
- {hipengine-0.2.0 → hipengine-0.2.2}/tests/test_w8a16_linear_plan.py +0 -0
|
@@ -6,6 +6,82 @@ This changelog is for package/API releases. Performance rollup history remains i
|
|
|
6
6
|
[`benchmarks/CHANGELOG.md`](benchmarks/CHANGELOG.md), with detailed benchmark
|
|
7
7
|
evidence under [`benchmarks/results/`](benchmarks/results/).
|
|
8
8
|
|
|
9
|
+
## Unreleased
|
|
10
|
+
|
|
11
|
+
No changes yet.
|
|
12
|
+
|
|
13
|
+
## v0.2.2 - 2026-05-26
|
|
14
|
+
|
|
15
|
+
Patch release improving server startup context preallocation, KV memory
|
|
16
|
+
admission, and request defaults.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Server-wide resident context/KV preallocation controls:
|
|
21
|
+
`--max-context-tokens`, `--kv-storage`, `--kv-scale-dtype`, and
|
|
22
|
+
`--kv-scale-granularity`. Eager startup prepares the resident PARO session for
|
|
23
|
+
the configured context, and requests beyond that context or with a different
|
|
24
|
+
KV policy are rejected instead of resizing/reloading the model.
|
|
25
|
+
- Automatic server context sizing when `--max-context-tokens` is omitted: after
|
|
26
|
+
resident weights load, the runtime estimates the selected KV dtype plus
|
|
27
|
+
persistent context metadata and preallocates
|
|
28
|
+
`min(model_max_context_tokens, allocatable_context_tokens)`.
|
|
29
|
+
- Fast PARO retained-KV capacity estimate during resident session build. The
|
|
30
|
+
runtime uses current `hipMemGetInfo` after model weights load to report the
|
|
31
|
+
estimated max context for the selected KV dtype and for INT8 KV, warning when
|
|
32
|
+
INT8 still falls below the model's advertised max context.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Chat requests that omit `max_tokens` now use `max_tokens=auto`, meaning the
|
|
37
|
+
remaining admitted context (`max_context_tokens - prompt_tokens - 1`).
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Clean up partially-built PARO resident sessions if capacity preflight or
|
|
42
|
+
allocation fails, avoiding leaked resident buffers on startup/admission OOM.
|
|
43
|
+
|
|
44
|
+
## v0.2.1 - 2026-05-25
|
|
45
|
+
|
|
46
|
+
Patch release improving server session management, streaming, and
|
|
47
|
+
OpenAI-compatible reasoning output.
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- Eager model warmup on server startup: the configured model and a short
|
|
52
|
+
warmup generation run before uvicorn reports ready, so the first real
|
|
53
|
+
request does not pay load/compile cost. Controlled by `--eager-load` /
|
|
54
|
+
`--no-eager-load` (default: on), `--eager-load-prompt`, and
|
|
55
|
+
`--eager-load-max-tokens`, with `HIPENGINE_EAGER_LOAD`,
|
|
56
|
+
`HIPENGINE_EAGER_LOAD_PROMPT`, and `HIPENGINE_EAGER_LOAD_MAX_TOKENS`
|
|
57
|
+
environment variable equivalents.
|
|
58
|
+
- `LLM.stream()` method for single-prompt token-by-token generation when
|
|
59
|
+
the underlying text generator supports it.
|
|
60
|
+
- Reasoning-content splitting for chat completions: `<think>…</think>`
|
|
61
|
+
spans (Qwen/DeepSeek-style) are now separated into
|
|
62
|
+
`message.reasoning_content` (non-streaming) or `delta.reasoning_content`
|
|
63
|
+
chunks (streaming), matching the OpenAI reasoning-content convention.
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
|
|
67
|
+
- PARO text generators and their resident sessions are now cached on the
|
|
68
|
+
`LLM` instance and reused across requests. Session capacity is bucketed
|
|
69
|
+
(floor 4 Ki tokens, configurable via `HIPENGINE_SESSION_MIN_TOKENS` and
|
|
70
|
+
`HIPENGINE_SESSION_BUCKET_TOKENS`) so normal chat-history growth does not
|
|
71
|
+
force reallocation every turn.
|
|
72
|
+
- Chat `stream=true` now yields token-level SSE chunks from the resident
|
|
73
|
+
decode loop instead of buffering the full response and wrapping it in a
|
|
74
|
+
single SSE frame.
|
|
75
|
+
- Chat completions default `max_tokens` raised from 16 to 8192 so clients
|
|
76
|
+
that omit the field get usable reply lengths, including verbose
|
|
77
|
+
chain-of-thought reasoning.
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
|
|
81
|
+
- Fixed `LLM.generate()` re-resolving the generation factory on every call,
|
|
82
|
+
which discarded generator-local caches and caused the PARO resident
|
|
83
|
+
session (layer weights, KV buffers) to be allocated and freed per request.
|
|
84
|
+
|
|
9
85
|
## v0.2.0 - 2026-05-25
|
|
10
86
|
|
|
11
87
|
Minor release for the GGUF runtime path and W7900 benchmark refresh. GGUF is a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hipengine
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: ROCm-native local LLM inference engine with a torch-free runtime hot path
|
|
5
5
|
Project-URL: Homepage, https://github.com/shisa-ai/hipEngine
|
|
6
6
|
Project-URL: Repository, https://github.com/shisa-ai/hipEngine
|
|
@@ -75,7 +75,7 @@ supported GPUs and models.
|
|
|
75
75
|
|
|
76
76
|
## Status
|
|
77
77
|
|
|
78
|
-
**v0.2.
|
|
78
|
+
**v0.2.1 alpha.** The runtime hot path is torch-free by construction, and the
|
|
79
79
|
first two 35B-class model-loading surfaces are now available on gfx1100:
|
|
80
80
|
[shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed](https://huggingface.co/shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed)
|
|
81
81
|
(19.07 GiB, 4.68 bpw) in packed
|
|
@@ -336,13 +336,20 @@ Install the optional server extra and run the FastAPI layer:
|
|
|
336
336
|
```bash
|
|
337
337
|
pip install -e ".[server]"
|
|
338
338
|
python -m hipengine.server \
|
|
339
|
-
--model /
|
|
339
|
+
--model shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed \
|
|
340
340
|
--quant w4_paro \
|
|
341
341
|
--served-model-name qwen-paro
|
|
342
342
|
```
|
|
343
343
|
|
|
344
|
-
|
|
345
|
-
|
|
344
|
+
`--model` accepts either a local filesystem path or a Hugging Face model ID
|
|
345
|
+
already present in the local HF cache; hipEngine resolves IDs locally and does
|
|
346
|
+
not download weights during startup.
|
|
347
|
+
|
|
348
|
+
Supported endpoints: `GET /v1/models`, `POST /v1/completions`, and
|
|
349
|
+
`POST /v1/chat/completions` with token-level SSE streaming. Chat responses
|
|
350
|
+
separate `<think>` reasoning into `reasoning_content` (matching the OpenAI
|
|
351
|
+
reasoning-content convention). The server eagerly warms the model on startup
|
|
352
|
+
by default so the first request does not pay load/compile cost. See
|
|
346
353
|
[`docs/API.md`](docs/API.md) for request examples, bearer-token auth, and
|
|
347
354
|
current limitations.
|
|
348
355
|
|
|
@@ -37,7 +37,7 @@ supported GPUs and models.
|
|
|
37
37
|
|
|
38
38
|
## Status
|
|
39
39
|
|
|
40
|
-
**v0.2.
|
|
40
|
+
**v0.2.1 alpha.** The runtime hot path is torch-free by construction, and the
|
|
41
41
|
first two 35B-class model-loading surfaces are now available on gfx1100:
|
|
42
42
|
[shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed](https://huggingface.co/shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed)
|
|
43
43
|
(19.07 GiB, 4.68 bpw) in packed
|
|
@@ -298,13 +298,20 @@ Install the optional server extra and run the FastAPI layer:
|
|
|
298
298
|
```bash
|
|
299
299
|
pip install -e ".[server]"
|
|
300
300
|
python -m hipengine.server \
|
|
301
|
-
--model /
|
|
301
|
+
--model shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed \
|
|
302
302
|
--quant w4_paro \
|
|
303
303
|
--served-model-name qwen-paro
|
|
304
304
|
```
|
|
305
305
|
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
`--model` accepts either a local filesystem path or a Hugging Face model ID
|
|
307
|
+
already present in the local HF cache; hipEngine resolves IDs locally and does
|
|
308
|
+
not download weights during startup.
|
|
309
|
+
|
|
310
|
+
Supported endpoints: `GET /v1/models`, `POST /v1/completions`, and
|
|
311
|
+
`POST /v1/chat/completions` with token-level SSE streaming. Chat responses
|
|
312
|
+
separate `<think>` reasoning into `reasoning_content` (matching the OpenAI
|
|
313
|
+
reasoning-content convention). The server eagerly warms the model on startup
|
|
314
|
+
by default so the first request does not pay load/compile cost. See
|
|
308
315
|
[`docs/API.md`](docs/API.md) for request examples, bearer-token auth, and
|
|
309
316
|
current limitations.
|
|
310
317
|
|
|
@@ -26555,3 +26555,169 @@ uv run --extra dev python -m pytest -q
|
|
|
26555
26555
|
```
|
|
26556
26556
|
|
|
26557
26557
|
Next: commit, push `main`, move annotated tag `v0.2.0` to the fix commit, force-push the tag per user approval, and watch the publish workflow complete via trusted publishing.
|
|
26558
|
+
|
|
26559
|
+
### v0.2.0 publish workflow result
|
|
26560
|
+
|
|
26561
|
+
Committed and pushed the HIP guard fix (`36e3516`), force-moved annotated tag `v0.2.0` to that commit per user approval, and re-pushed the tag. The `Publish to PyPI` workflow reran as `26370452261` and completed successfully: build validation passed, artifact attestation was generated, and `Publish to PyPI (trusted publishing)` succeeded. Verified published install path:
|
|
26562
|
+
|
|
26563
|
+
```bash
|
|
26564
|
+
uvx --refresh --from "hipengine[server]==0.2.0" hipengine-server --help
|
|
26565
|
+
# downloaded hipengine 0.2.0 from PyPI and printed CLI help
|
|
26566
|
+
```
|
|
26567
|
+
|
|
26568
|
+
Final release pointers: GitHub release `https://github.com/shisa-ai/hipEngine/releases/tag/v0.2.0`, publish workflow `https://github.com/shisa-ai/hipEngine/actions/runs/26370452261`, release tag commit `36e351607955158e821b51f443bac042b140624f`.
|
|
26569
|
+
|
|
26570
|
+
## 2026-05-25 — HF cache model id resolution for server/LLM
|
|
26571
|
+
|
|
26572
|
+
Added local Hugging Face cache resolution for public model references so `hipengine-server --model` and `LLM(model=...)` can take either a filesystem path or a cached HF model id such as `shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed`. Resolution remains local-only: existing paths win, then `huggingface_hub.snapshot_download(..., local_files_only=True)` is used if available, then the standard HF cache layout is inspected directly; no weights are downloaded during startup. GGUF discovery now resolves the model reference first, so cached GGUF repos/directories work as well as direct `.gguf` file paths.
|
|
26573
|
+
|
|
26574
|
+
Also updated README/API server examples to show the HF model id form and note that cache resolution is local-only. User's `uv run --extra server ...` command is the right shape; the `--no-build` error indicates a uv no-build mode/config/environment for the local editable package, not a hipEngine server argument issue. Workaround is to unset no-build for local editable runs or use the published wheel via `uvx --from "hipengine[server]==0.2.0"`.
|
|
26575
|
+
|
|
26576
|
+
Validation:
|
|
26577
|
+
|
|
26578
|
+
```bash
|
|
26579
|
+
python -m py_compile hipengine/loading/hf_cache.py hipengine/loading/safetensors.py hipengine/loading/gguf.py hipengine/llm.py
|
|
26580
|
+
python -m pytest -q tests/test_hf_cache.py tests/test_llm_generate.py tests/test_loading_safetensors.py tests/test_server_api.py
|
|
26581
|
+
# 19 passed
|
|
26582
|
+
uv run --extra dev python -m pytest -q
|
|
26583
|
+
# passed
|
|
26584
|
+
```
|
|
26585
|
+
## 2026-05-23 — llama.cpp wrapper metadata fix for RX 7900 XTX 5-run sweep
|
|
26586
|
+
|
|
26587
|
+
Before rerunning `benchmarks/7900XTX.md` with `--repetitions 5`, fixed `scripts/llamacpp_bench_with_peak.py` artifact metadata so it no longer hardcodes W7900 or a single-shot `--repetitions 1` note. The artifact now records the selected amdgpu card name/PCI/VRAM in `hardware` and emits a dynamic repetitions note. Validation: `python3 -m py_compile scripts/llamacpp_bench_with_peak.py`.
|
|
26588
|
+
|
|
26589
|
+
## 2026-05-24 — server resident-session reuse smoke
|
|
26590
|
+
|
|
26591
|
+
Debugged the local OpenAI-compatible PARO server after LAN chat showed short `<think>` replies and apparent reloads. Root causes:
|
|
26592
|
+
|
|
26593
|
+
- `LLM.generate()` re-resolved the generation factory and constructed a new text generator on every call, discarding generator-local caches.
|
|
26594
|
+
- `Qwen35ParoOneTokenGenerator` then constructed `Qwen35ParoResidentSession` inside each prompt call and closed it immediately, so resident layer weights/KV buffers were materialized and freed per request.
|
|
26595
|
+
- The OpenAI chat server default `max_tokens` was 16; clients that omit `max_tokens` saw very short replies. The Qwen/PARO model config advertises `max_position_embeddings=262144`, but the runtime session capacity was allocated as `len(prompt_ids) + max_tokens + 1` per request.
|
|
26596
|
+
- `stream=true` only returned an SSE wrapper around the completed response; it did not yield tokens while generation was running.
|
|
26597
|
+
|
|
26598
|
+
Fixes made in-tree:
|
|
26599
|
+
|
|
26600
|
+
- Cache the resolved text generator on `hipengine.LLM` so server `app.state.hipengine_llm` keeps its backend/model/quant generator across requests.
|
|
26601
|
+
- Cache/reuse `Qwen35ParoResidentSession` inside the PARO generator when the existing session capacity and KV policy cover the next request; reset it between prompts instead of closing it. Session capacity now floors/buckets at 4096 tokens by default (`HIPENGINE_SESSION_MIN_TOKENS`, `HIPENGINE_SESSION_BUCKET_TOKENS`) so normal chat history growth does not force reallocation every turn.
|
|
26602
|
+
- Add a single-prompt streaming path using resident `step()` per token, and route chat `stream=true` through it. Chat default `max_tokens` is now 256.
|
|
26603
|
+
|
|
26604
|
+
Validation:
|
|
26605
|
+
|
|
26606
|
+
```bash
|
|
26607
|
+
uv run --extra dev python -m pytest -q tests/test_llm_generate.py tests/test_generation_qwen35_paro.py tests/test_server_api.py
|
|
26608
|
+
# 17 passed
|
|
26609
|
+
```
|
|
26610
|
+
|
|
26611
|
+
Restarted the running LAN server from the local checkout with TheRock ROCm library paths:
|
|
26612
|
+
|
|
26613
|
+
```bash
|
|
26614
|
+
uv run --extra server hipengine-server --model shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed --quant w4_paro --served-model-name qwen-paro --host 0.0.0.0 --port 8000
|
|
26615
|
+
```
|
|
26616
|
+
|
|
26617
|
+
Smoke evidence on the running server after restart from the local checkout: first streamed `max_tokens=4` request sent the role chunk immediately, then took 30.25s to warm/materialize and yielded token chunks (`<think>`, newline, `Here`, `'s`); VRAM reached 19.54GB. A second chat-history request reused the resident 4096-token session, yielded the first content chunk at 0.46s, completed at 0.49s, and VRAM stayed resident at 19.55GB. Server PID 9305, wrapper PID recorded in `/tmp/hipengine-server-8000.pid`, log `/tmp/hipengine-server-8000.log`.
|
|
26618
|
+
|
|
26619
|
+
## 2026-05-24 — eager server warmup and reasoning-channel split
|
|
26620
|
+
|
|
26621
|
+
Implemented eager server warmup and OpenAI-compatible reasoning segregation for the local PARO server.
|
|
26622
|
+
|
|
26623
|
+
Changes:
|
|
26624
|
+
|
|
26625
|
+
- Added `ServerConfig.eager_load` plus CLI `--eager-load/--no-eager-load` (default on), `--eager-load-prompt`, and `--eager-load-max-tokens`. Startup now constructs `LLM` and runs a one-token warmup before uvicorn reports startup complete, so `/v1/models` is only reachable after the model/session is resident.
|
|
26626
|
+
- Default warmup prompt is `one two three four`; the initial `hello` default failed native prefill because Qwen35/PARO requires at least `linear_conv_kernel_dim` (4) prompt tokens.
|
|
26627
|
+
- Split Qwen/DeepSeek-style `<think>...</think>` spans in chat responses. Non-stream responses put visible answer text in `message.content` and hidden reasoning text in `message.reasoning_content`. Streaming responses emit `delta.reasoning_content` for reasoning chunks and `delta.content` for final answer chunks.
|
|
26628
|
+
|
|
26629
|
+
Validation:
|
|
26630
|
+
|
|
26631
|
+
```bash
|
|
26632
|
+
uv run --extra dev python -m pytest -q tests/test_server_api.py tests/test_llm_generate.py tests/test_generation_qwen35_paro.py
|
|
26633
|
+
# 19 passed
|
|
26634
|
+
```
|
|
26635
|
+
|
|
26636
|
+
Restarted the LAN server from the local checkout with TheRock ROCm library paths. Eager startup completed after 31s, `/v1/models` returned `qwen-paro`, and VRAM was already resident at 19.54GB before serving requests. A subsequent streamed chat request returned the role chunk at 0.01s and reasoning chunks as `delta.reasoning_content` from 0.49s onward, with VRAM staying resident at 19.54GB. Server PID 12107, wrapper PID 12082, log `/tmp/hipengine-server-8000.log`.
|
|
26637
|
+
|
|
26638
|
+
## 2026-05-25 — PARO KV capacity preflight for server sizing
|
|
26639
|
+
|
|
26640
|
+
Revisited the first-request reload diagnosis. The chat default should remain `max_tokens=8192`; the real issue is that session sizing is request-driven, so a warmed 4096-token resident session can be discarded when a later request needs a larger KV arena. Before changing admission/preallocation policy, added a fast retained-KV capacity estimate in `Qwen35ParoResidentSession`: after resident weights load and before full-attention KV buffers are allocated, the runtime reads `hipMemGetInfo`, subtracts a configurable reserve (`HIPENGINE_KV_CAPACITY_RESERVE_MIB`, default 512 MiB), computes bytes/token for the selected KV dtype and for INT8 KV, emits structured progress records, and logs a warning when INT8 capacity is below the model's advertised max context. This gives startup logs such as "INT8 KV can fit about N tokens vs model max M" instead of discovering the limit via an OOMing `hipMalloc`.
|
|
26641
|
+
|
|
26642
|
+
Wired the estimate into server policy: `ServerConfig`/CLI now have `--max-context-tokens` (default 131072), `--kv-storage`, `--kv-scale-dtype`, and `--kv-scale-granularity`. Eager startup calls `LLM.prepare(max_sequence_length=...)` before the warmup generation, so the resident PARO session/KV arena is preallocated for the configured context. Request admission checks `prompt_tokens + max_tokens + 1 <= max_context_tokens`, and per-request KV settings must match the server-wide preallocated policy; violations return OpenAI-style 400 errors instead of triggering a session resize/reload.
|
|
26643
|
+
|
|
26644
|
+
Also made PARO resident session construction clean up partially-built buffers if preflight/allocation fails, so an over-large requested context fails cleanly instead of leaking resident weights/KV. Chat default coverage was restored to assert the intended 8192-token server default.
|
|
26645
|
+
|
|
26646
|
+
Validation:
|
|
26647
|
+
|
|
26648
|
+
```bash
|
|
26649
|
+
python -m pytest -q tests/test_server_api.py tests/test_generation_qwen35_paro.py tests/test_llm_generate.py
|
|
26650
|
+
# 24 passed
|
|
26651
|
+
python -m py_compile hipengine/runtime/qwen35_paro_runner.py hipengine/loading/qwen35_paro.py hipengine/server/api.py hipengine/server/__main__.py hipengine/llm.py hipengine/generation/qwen35_paro.py
|
|
26652
|
+
```
|
|
26653
|
+
|
|
26654
|
+
## 2026-05-25 — server auto context sizing accounts for retained metadata
|
|
26655
|
+
|
|
26656
|
+
Follow-up to the PARO server KV preallocation work: a real startup with default auto sizing attempted the model max 262144-token BF16 context and OOMed before the old KV estimate ran because `_allocate_common_buffers()` materialized a large persistent prefill block table (`prefill_capacity_rows x blocks`). Fixed the sizing path to load resident weights first, run the HIP free-memory estimate before context-dependent metadata/KV allocation, and include persistent context metadata in the allocatable-token calculation. Automatic server startup now selects `min(model_max_context_tokens, allocatable_context_tokens)` for the selected KV policy, while explicit `--max-context-tokens` still fails fast with guidance to lower the cap or use INT8 KV.
|
|
26657
|
+
|
|
26658
|
+
Also made chat `max_tokens` dynamic when omitted: after the resident context is prepared, chat requests default to the remaining admitted context (`max_context_tokens - prompt_tokens - 1`) instead of a fixed 8192. Startup logs were compacted to `Config`, `KVCache`, `WARMUP`, and `hipEngine is ready.` lines, with KVCache reporting KV bytes plus retained metadata bytes.
|
|
26659
|
+
|
|
26660
|
+
Validation:
|
|
26661
|
+
|
|
26662
|
+
```bash
|
|
26663
|
+
python -m pytest -q tests/test_generation_qwen35_paro.py tests/test_server_api.py tests/test_llm_generate.py
|
|
26664
|
+
# 24 passed
|
|
26665
|
+
python -m py_compile hipengine/runtime/qwen35_paro_runner.py hipengine/server/api.py hipengine/generation/qwen35_paro.py hipengine/llm.py hipengine/server/__main__.py
|
|
26666
|
+
```
|
|
26667
|
+
|
|
26668
|
+
## 2026-05-25 — suppress duplicate low-level KV capacity logs
|
|
26669
|
+
|
|
26670
|
+
Kept the server `Config`/`KVCache` summary as the user-facing startup output and demoted the lower-level PARO runner KV-capacity info/warning lines to DEBUG. The resolved `Config` and `KVCache` lines intentionally remain after resident weights load because auto sizing uses actual `hipMemGetInfo` free memory after model materialization.
|
|
26671
|
+
|
|
26672
|
+
Validation:
|
|
26673
|
+
|
|
26674
|
+
```bash
|
|
26675
|
+
python -m pytest -q tests/test_server_api.py tests/test_generation_qwen35_paro.py
|
|
26676
|
+
python -m py_compile hipengine/runtime/qwen35_paro_runner.py hipengine/server/api.py
|
|
26677
|
+
```
|
|
26678
|
+
|
|
26679
|
+
## 2026-05-26 — v0.2.1 release validation and artifact build
|
|
26680
|
+
|
|
26681
|
+
Prepared v0.2.1 for publishing with the server KV preallocation improvements folded into the `CHANGELOG.md` v0.2.1 entry (leaving `Unreleased` empty). Used a clean detached worktree at `/tmp/hipengine-release-v021.QhOZ2d` to avoid the main checkout's unrelated untracked `uv.lock`.
|
|
26682
|
+
|
|
26683
|
+
Validation and artifact commands:
|
|
26684
|
+
|
|
26685
|
+
```bash
|
|
26686
|
+
git fetch --tags origin && git pull --ff-only
|
|
26687
|
+
python3 -m compileall -q hipengine scripts tests
|
|
26688
|
+
uv run --extra dev python -m pytest -q
|
|
26689
|
+
uv run --python 3.10 --extra dev python -m pytest -q
|
|
26690
|
+
uv run --extra dev hipengine-server --help
|
|
26691
|
+
rm -rf dist && python3 -m build
|
|
26692
|
+
unzip -p dist/hipengine-0.2.1-py3-none-manylinux_2_39_x86_64.whl hipengine-0.2.1.dist-info/WHEEL
|
|
26693
|
+
uvx --from twine twine check dist/*
|
|
26694
|
+
WHEEL=/tmp/hipengine-release-v021.QhOZ2d/dist/hipengine-0.2.1-py3-none-manylinux_2_39_x86_64.whl; \
|
|
26695
|
+
(cd /tmp && uv run --isolated --with "${WHEEL}[server]" hipengine-server --help)
|
|
26696
|
+
```
|
|
26697
|
+
|
|
26698
|
+
Results: compileall passed; full pytest passed on CPython 3.10.16 (including the explicit `--python 3.10` run); server CLI smoke passed; `python3 -m build` produced `hipengine-0.2.1.tar.gz` and `hipengine-0.2.1-py3-none-manylinux_2_39_x86_64.whl`; wheel metadata reports `Root-Is-Purelib: false` and tag `py3-none-manylinux_2_39_x86_64`; `twine check` passed for both artifacts; isolated wheel server CLI smoke passed.
|
|
26699
|
+
|
|
26700
|
+
## 2026-05-26 — retarget server KV preallocation release to v0.2.2
|
|
26701
|
+
|
|
26702
|
+
Confirmed `v0.2.1` was already immutable on PyPI and tagged on GitHub, so retargeted the server KV preallocation improvements to `v0.2.2`. Updated `pyproject.toml` to `0.2.2` and split `CHANGELOG.md` so `v0.2.1` retains the already-published session reuse/warmup/streaming notes while `v0.2.2` carries the resident context/KV preallocation controls, auto context sizing, retained-KV capacity estimate, `max_tokens=auto`, and partial-construction cleanup notes.
|
|
26703
|
+
|
|
26704
|
+
## 2026-05-26 — v0.2.2 release validation and artifact build
|
|
26705
|
+
|
|
26706
|
+
Built the server KV preallocation release as `v0.2.2` from clean detached worktree `/tmp/hipengine-release-v021.QhOZ2d` at commit `fc16570` before the release-validation log append.
|
|
26707
|
+
|
|
26708
|
+
Validation and artifact commands:
|
|
26709
|
+
|
|
26710
|
+
```bash
|
|
26711
|
+
python3 -m compileall -q hipengine scripts tests
|
|
26712
|
+
uv run --extra dev python -m pytest -q
|
|
26713
|
+
uv run --python 3.10 --extra dev python -m pytest -q
|
|
26714
|
+
uv run --extra dev hipengine-server --help
|
|
26715
|
+
rm -f uv.lock && rm -rf .venv dist
|
|
26716
|
+
python3 -m build
|
|
26717
|
+
unzip -p dist/hipengine-0.2.2-py3-none-manylinux_2_39_x86_64.whl hipengine-0.2.2.dist-info/WHEEL
|
|
26718
|
+
uvx --from twine twine check dist/*
|
|
26719
|
+
WHEEL=/tmp/hipengine-release-v021.QhOZ2d/dist/hipengine-0.2.2-py3-none-manylinux_2_39_x86_64.whl; \
|
|
26720
|
+
(cd /tmp && uv run --isolated --with "${WHEEL}[server]" hipengine-server --help)
|
|
26721
|
+
```
|
|
26722
|
+
|
|
26723
|
+
Results: compileall passed; full pytest passed on CPython 3.10.16 (including the explicit `--python 3.10` run); server CLI smoke passed; `python3 -m build` produced `hipengine-0.2.2.tar.gz` and `hipengine-0.2.2-py3-none-manylinux_2_39_x86_64.whl`; wheel metadata reports `Root-Is-Purelib: false` and tag `py3-none-manylinux_2_39_x86_64`; `twine check` passed for both artifacts; isolated wheel server CLI smoke passed. Rebuild artifacts after this log append before publishing so `dist/` matches the final commit.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenAI-Compatible Server API
|
|
2
2
|
|
|
3
|
-
Last updated: 2026-05-
|
|
3
|
+
Last updated: 2026-05-25
|
|
4
4
|
|
|
5
5
|
hipEngine ships a thin optional FastAPI layer that adapts OpenAI-style requests
|
|
6
6
|
to the torch-free `hipengine.LLM.generate()` library API. It is installed only
|
|
@@ -17,13 +17,17 @@ pip install -e ".[server]"
|
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
python -m hipengine.server \
|
|
20
|
-
--model /
|
|
20
|
+
--model shisa-ai/Qwen3.6-35B-A3B-PARO-full4096-e5-packed \
|
|
21
21
|
--quant w4_paro \
|
|
22
22
|
--served-model-name qwen-paro \
|
|
23
23
|
--host 127.0.0.1 \
|
|
24
24
|
--port 8000
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
+
`--model` accepts a local filesystem path or a Hugging Face model ID that is
|
|
28
|
+
already present in the local HF cache. hipEngine resolves IDs with local cache
|
|
29
|
+
lookups only; it does not download weights during server startup.
|
|
30
|
+
|
|
27
31
|
After installation, the console script is equivalent:
|
|
28
32
|
|
|
29
33
|
```bash
|
|
@@ -36,6 +40,25 @@ select `cpu_reference` where a CPU implementation exists; nearby targets such as
|
|
|
36
40
|
`gfx1101`/`gfx1102` can force a backend with `--backend hip_gfx1100` or
|
|
37
41
|
`HIPENGINE_BACKEND=hip_gfx1100` after local validation.
|
|
38
42
|
|
|
43
|
+
By default the server eagerly loads the model, loads resident weights, estimates
|
|
44
|
+
remaining HIP memory for KV cache plus persistent context metadata, then
|
|
45
|
+
preallocates `min(model max context, estimated allocatable context)`. Pass
|
|
46
|
+
`--max-context-tokens` (or `HIPENGINE_MAX_CONTEXT_TOKENS`) to force a lower cap.
|
|
47
|
+
Startup fails with a clear error if the requested cap cannot be allocated; lower
|
|
48
|
+
`--max-context-tokens` or use `--kv-storage int8_per_token_head`. Disable eager
|
|
49
|
+
startup with `--no-eager-load` or `HIPENGINE_EAGER_LOAD=0`. The warmup prompt and
|
|
50
|
+
token count are configurable via `--eager-load-prompt` and
|
|
51
|
+
`--eager-load-max-tokens`.
|
|
52
|
+
|
|
53
|
+
The resident KV policy is server-wide: set `--kv-storage` (`auto`, `bf16`, or
|
|
54
|
+
`int8_per_token_head`), `--kv-scale-dtype`, and `--kv-scale-granularity` at
|
|
55
|
+
startup. Requests that ask for a different KV policy are rejected instead of
|
|
56
|
+
rebuilding the resident model. Startup logs include a compact KVCache summary
|
|
57
|
+
from current HIP free memory and warn when even INT8 KV is below the model's
|
|
58
|
+
advertised max context. Chat requests that omit `max_tokens` use
|
|
59
|
+
`max_tokens=auto`, meaning the remaining admitted context
|
|
60
|
+
(`max_context_tokens - prompt_tokens - 1`).
|
|
61
|
+
|
|
39
62
|
Set `HIPENGINE_API_KEY` or pass `--api-key` to require OpenAI-style bearer
|
|
40
63
|
authentication:
|
|
41
64
|
|
|
@@ -50,8 +73,8 @@ curl -H 'Authorization: Bearer local-secret' http://127.0.0.1:8000/v1/models
|
|
|
50
73
|
| --- | --- | --- |
|
|
51
74
|
| `GET /health` | Built in | Unauthenticated health/model probe. |
|
|
52
75
|
| `GET /v1/models` | Built in | Returns the single served model id. |
|
|
53
|
-
| `POST /v1/completions` | Built in | Text prompt(s) to `LLM.generate()`. Supports `stream=true`
|
|
54
|
-
| `POST /v1/chat/completions` | Built in | Renders text-only messages to a Qwen-style prompt and calls `LLM.generate()`. Supports `stream=true`
|
|
76
|
+
| `POST /v1/completions` | Built in | Text prompt(s) to `LLM.generate()`. Supports `stream=true` (one SSE chunk plus `[DONE]`). |
|
|
77
|
+
| `POST /v1/chat/completions` | Built in | Renders text-only messages to a Qwen-style prompt and calls `LLM.generate()`. Supports token-level `stream=true` SSE. `<think>` spans are separated into `reasoning_content` (non-streaming) or `delta.reasoning_content` chunks (streaming). |
|
|
55
78
|
|
|
56
79
|
## Examples
|
|
57
80
|
|