Skip to content

ci: run the #961 reland together with #599 so CI can exercise Gemma-4 - #1069

Open
BoarQing wants to merge 2 commits into
perf/allocator-pool-large-relandfrom
perf/allocator-pool-large-reland-gemma4ci
Open

BoarQing wants to merge 2 commits into
perf/allocator-pool-large-relandfrom
perf/allocator-pool-large-reland-gemma4ci

Conversation

@BoarQing

Copy link
Copy Markdown
Contributor

Summary

#1068 (the #961 reland) plus #599, so CI builds OGA from the AMDGPU fork and can
actually exercise the workload the allocator change exists for. On its own,
#1068's CI cannot reach Gemma-4 at all.

Stacked on perf/allocator-pool-large-reland, so this PR's diff is only #599's
single-file change to .github/workflows/windows-deps.yml, byte-identical to
#599's. The allocator commits belong to #1068 and should be reviewed there.

Related issue or design

Carries #1068 (relands #961, reverted by #1056) and #599.

Why

#961 optimises the path a decoder takes when past_present_share_buffer=false:
the KV tensors are reallocated every decode step, and above a 4096-token context
each one is over the 16 MB pool cutoff, so every step used to page-pin ~3.4 GiB
afresh. The models that exercise this are the Gemma-4 pair, because they package
max_length=262144 and cannot use a shared KV buffer.

CI does not currently build an OGA that can run them. windows-deps.yml pins
OGA 0.14.0 plus upstream PR patch 2194, which lacks the gemma4-unified
features. #599 points it at amd-genmingz/onnxruntime-genai @ test_0_3, the fork
branch carrying the AMDGPU MorphiZen integration and sliding_window support.

So #1068 alone can be reviewed and its EPCert regression evidence checked, but
its headline result — Gemma-4 decode throughput — cannot be reproduced by CI
until #599 lands. This PR is the combination, run together, so that evidence
exists in CI rather than only on my bench.

What

Two cherry-picks from #599, authorship preserved, on top of #1068's branch:

  • test: build OGA from the AMDGPU fork so gemma4-unified features are exercised (Zhong, GenMing)
  • ci(windows): install requests before building OGA from the fork

Nothing is modified relative to either PR. git diff against #599's head for
windows-deps.yml is empty.

Test plan

Local measurements for the allocator change are in #1068 and not repeated here.
What this PR adds is CI coverage of the Gemma-4 path, which is the point of
combining them, so the test plan is the pipeline itself:

  • windows-deps builds OGA from the fork
  • build-windows green
  • windows-gpu-test green, including onnxruntime_perf_test
  • EPCert MMLU shows no pinned-memory growth and no error 719

For reference, the numbers this is meant to let CI confirm, from #1068 — gfx1151,
Gemma-4 26B-A4B, 8192-token prompt, 128 generated, only hipgpu.dll differing,
arms interleaved and order-reversed with a private TEMP each:

arm TPS peak RSS
main 23.95 17,441 MB
this branch 41.02 6,902 MB

pre-commit run --from-ref <base> --to-ref HEAD passes on this branch.

Notes for reviewers

Do not merge this ahead of #599. It duplicates #599's commits so CI can run
the combination; #599 is the right place to review and land that change, and
this PR should be closed or rebased once #599 merges.

Review split. The allocator change is #1068's. This PR exists for CI
evidence. If you would rather not carry a duplicate PR, the alternative is to
land #599 first and let #1068's CI pick it up; I raised this because #1068's
Gemma-4 claim is otherwise unverifiable in CI, and I would rather the combination
be exercised before either lands than after.

Scope caveat inherited from #1068. My Gemma-4 measurement is at an 8192-token
context, not #961's 16384, because a 16K run exceeds my box's commit limit on
main as well as on this branch. CI on this PR is the opportunity to get the 16K
figure on hardware that can hold it.

Checklist

  • The change is focused, or links a design/series explaining its scope.
  • Relevant tests were added or updated and the results are documented.
  • User-facing or design documentation was updated when needed.
  • Substantial AI assistance is disclosed, and I reviewed and understand the result.

AI assistance

The branch assembly and this description were produced with Cursor (Claude Opus
5). The two carried commits are unmodified cherry-picks from #599 and verified
byte-identical to it. Disclosure for the allocator work is in #1068.

amd-genmingz and others added 2 commits September 20, 2026 00:09
…xercised

Upstream v0.14.0 plus PR 2194 has no sliding_window support, so a
gemma4-unified decode cannot be driven end to end in CI. Point the Windows
OGA build at the fork branch that already carries both the AMDGPU MorphiZen
integration 2194 supplied and sliding_window.

Rebased onto main: the original three commits edited the monolithic
.github/workflows/windows-build.yml, which main has since split into
windows-{deps,build-mock,build-real,gpu-test}.yml. The OGA pin now lives in
windows-deps.yml, so the change is applied there. The cache key keeps the mm3
bump and the trailing -2 from the pre-rebase history, since test_0_3 has moved
under the same ref.

Windows only, matching the original scope; linux-build.yml keeps its own
OGA_VERSION and still builds upstream.
The fork branch's build.py imports tools/python/util, whose
dependency_resolver imports requests at module scope. Upstream v0.14.0
had no such import, so the oga prebuild job never needed it, and the
Python 3.14 environment actions/setup-python provides does not carry it.
The job therefore died with ModuleNotFoundError before configuring
anything.

Passing --ort_home already suppresses every download_dependencies call,
so only the import has to resolve; nothing is fetched at build time.

Co-Authored-By: Cursor <cursoragent@cursor.com>
Made-with: Cursor
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

Copy link
Copy Markdown

Thanks for opening a PR!

This project follows LLVM's incremental-development and AI-tool-use
guidance. See CONTRIBUTING.md
for the project workflow.

Before requesting review, please check that:

  1. The change is focused. Substantial work links the relevant issue
    or design discussion.
  2. The PR documents relevant test results and updates affected
    documentation.
  3. If AI tools provided substantial assistance, the description
    explains what was assisted and how it was validated, and commit
    trailers identify the tool. The contributor has reviewed and
    understands the result.

Reviewers are assigned through
CODEOWNERS where ownership
is configured.

@github-actions

Copy link
Copy Markdown

L2 Accuracy Results (EP vs CPU)

Model Combined L2 Total Elems Skipped NaN/Inf
conv_test_hybrid 1.12256E-07 64 0
GroupQueryAttention_seq256 25.1883 2621440 0
MatMulNBits_o_seq128 259.905 368640 0
QMoE_seq128 39.2997 368640 0

Threshold: 0.01 | Run: 6517 - Commit: b50b708

@github-actions

github-actions Bot commented Sep 20, 2026

Copy link
Copy Markdown

Binary sizes

Baseline: run 35413032867 - e8ab476 (dll-sizes)

File This (MB) Main (MB) Delta (MB)
hipgpu.dll 63.37 63.36 0.00
custom_kernels_gfx1170.dll 4.59 4.59 0.00
custom_kernels_gfx11-generic.dll 4.80 4.80 0.00

MorphiZen EP Performance Results

Model QPS Session (s) 1st Infer (ms) CPU% Mem (MB)
full_model_seq128 8.16 6.75 292 3 1149
GroupQueryAttention_seq128 4467.41 2.16763 11 6 218
matmul_down_seq128 477.15 2.75 119 3 264

EPContext Export Performance

Model QPS Session (s) 1st Infer (ms) CPU% Mem (MB)
full_model_seq128 8.28 46.11 268 3 15495

EPContext Import Performance

Model QPS Session (s) 1st Infer (ms) CPU% Mem (MB)
full_model_seq128 8.26 9.55 259 3 15694

OGA Benchmark Results

Model Warmup Reps Prompt Len Gen Tokens TTFT (ms) TPS Peak Mem (GB) GPU Mem (GB)
gpt-oss-20b-webgpu-int4-rtn-block-32 1 5 128 128 168.5 77.8 1.24 12.32
Llama-3.1-8B-awq-g128-int4-asym-fp16-onnx-dml 1 5 128 128 119.2 46.3 1.13 5.40

OGA Wheel Smoke (Python benchmark_e2e.py)

Model TTFT (ms) TPS
Llama-3.1-8B-awq-g128-int4-asym-fp16-onnx-dml 125 46.3

VLM Benchmark Results

Model TTFT (ms) TPS Output
Qwen3.8-27B-fp16-ve-fp16-int4-k_quant-gs128-text-dml-onnx 4972.0 13.8 The user wants a detailed description of the image. Let me carefully observe all elements before writing. Subject: A white do

Run: 6517 - Commit: b50b708

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants