Skip to content

ci: pin OGA to 0.15.1 and the rebased AMDGPU integration PR - #667

Draft
zz002 wants to merge 4 commits into
mainfrom
ci/oga-0.15.1
Draft

ci: pin OGA to 0.15.1 and the rebased AMDGPU integration PR#667
zz002 wants to merge 4 commits into
mainfrom
ci/oga-0.15.1

Conversation

@zz002

@zz002 zz002 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

Moves the OGA pin from v0.14.0 + PR #2194 to the 0.15.1 release commit 3abf4a84 plus PR #2376, the same AMDGPU umbrella integration ported to 0.15.1's device-interface API. Both Windows and Linux workflows are updated, along with the quick-start docs.

Related issue or design

Upstream patch source: microsoft/onnxruntime-genai#2376 (draft, supersedes #2194).

Why

Upstream published no v0.15.1 tag and rel-0.15.1 is a branch that keeps moving, so a tag-shaped ref cannot pin this release: the workflows check out the release commit instead.

The OGA cache key previously combined the PR number with a hand-bumped mm<N> token, which had to be remembered whenever a patch PR's branch changed under the same number. A new step resolves each patch PR's head SHA and folds it into the key, so the cache invalidates on its own when a patch PR is updated.

0.15 enables 1DS telemetry by default, which pulls cpp_client_telemetry (plus curl and mbedtls on Linux) into a cold build and would ship Microsoft telemetry inside AMD artifacts, so OGA now builds with --no_telemetry.

What

  • OGA_VERSION (only ever used to build a v<version> ref) is replaced by OGA_COMMIT; OGA_PR_PATCHES moves to 2376.
  • New Resolve OGA PR head SHAs step (pwsh on Windows, bash on Linux) queries gh api repos/microsoft/onnxruntime-genai/pulls/<n> --jq .head.sha and emits <pr>-<sha12> pairs as a step output consumed by the cache key.
  • --no_telemetry added to both build.py invocations and to the documented local build.
  • docs/quick_start.md / docs/quick_start_linux.md: clone-and-checkout the pinned commit, apply PR #2376, and drop the stale morphizen_ep -> amdgpu rename rationale from the git am note.

Test plan

  • Locally built OGA at rel-0.15.1 + the #2376 branch against ORT 1.27 with --no_telemetry (Ninja, Release): onnxruntime-genai.dll and model_benchmark.exe produced.
  • model_benchmark on Llama-3.1-8B (AWQ int4, "AMDGPU": {"profile": "hip"}, session.disable_cpu_ep_fallback=1) with that build: exit 0, TTFT 252 ms and 30.2 tok/s against 240 ms and 30.9 tok/s for the current CI package (v0.14.0 + #2194).
  • Cold-cache CI: Resolve OGA PR head SHAs produces a non-empty SHA that appears in the cache key, Apply OGA PR patches applies #2376 cleanly, Build OGA produces model_benchmark.exe + onnxruntime-genai.dll + the 0.15.1 wheel.
  • gpu-test Run OGA benchmark and Run OGA wheel smoke stay green.

Notes for reviewers

PR #2376 is a draft opened as a patch source for this CI; it overlaps with upstream #2165. Once #2165 lands, OGA_PR_PATCHES switches to it and #2376 is closed. The cache key changes on this PR, so the first run is a cold OGA build.

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.

@github-actions

github-actions Bot commented Aug 5, 2026

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.

Upstream published no v0.15.1 tag and rel-0.15.1 keeps moving, so both workflows check out the release commit instead of a tag. The AMDGPU integration moves from PR #2194 (v0.14.0) to PR #2376, which is the same integration ported to the 0.15.1 device-interface API.

The OGA cache key now folds in the resolved head SHA of every patch PR instead of the PR number plus a hand-bumped mm<N> token, so pushing a new commit to a patch PR invalidates the cache on its own. OGA builds with --no_telemetry: 0.15 enables 1DS telemetry by default, which pulls cpp_client_telemetry (plus curl and mbedtls on Linux) into a cold build and would ship Microsoft telemetry in AMD artifacts.
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

L2 Accuracy Results (EP vs CPU)

Model Combined L2 Total Elems Skipped NaN/Inf
conv_test_hybrid 4.8668E-07 64 0
GroupQueryAttention_seq256 25.2366 2621440 0
MatMulNBits_o_seq128 259.906 368640 0
QMoE_seq128 34.9552 368640 0

Threshold: 0.01 | Run: 3668 - Commit: 18be2ca

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

MorphiZen EP Performance Results

Model QPS Session (s) 1st Infer (ms) CPU% Mem (MB)
full_model_seq128 7.51 6.27 366 3 1244
GroupQueryAttention_seq128 4469.93 1.6761 10 6 311
matmul_down_seq128 522.06 2.31 69 3 352

EPContext Export Performance

Model QPS Session (s) 1st Infer (ms) CPU% Mem (MB)
full_model_seq128 7.54 45.97 365 3 15590

EPContext Import Performance

Model QPS Session (s) 1st Infer (ms) CPU% Mem (MB)
full_model_seq128 7.53 9.85 363 3 15760

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 172.6 77.6 1.33 13.53
Llama-3.1-8B-awq-g128-int4-asym-fp16-onnx-dml 1 5 128 128 344.1 41.2 1.22 6.43

OGA Wheel Smoke (Python benchmark_e2e.py)

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

Run: 3668 - Commit: 18be2ca

zz002 added 3 commits August 5, 2026 05:24
OGA 0.15 prints "Peak working set size: <n> bytes (<x> GB)" where 0.14 printed "Peak working set size (bytes): <n>", so the OGA benchmark summary reported "-" for Peak Mem and the perf-report tools printed "?". Match the current format, which is also what the perf_test parser in the same workflow already expects.
OGA_COMMIT had to be edited by hand every time upstream pushed to rel-0.15.1. OGA_BRANCH names the branch instead, and the step that already resolves patch-PR heads now resolves the branch head too: its short SHA goes into the cache key and the checkout uses the full SHA from the same lookup, so the cached artifacts always correspond to the source they were built from.
@amd-mingw
amd-mingw marked this pull request as draft August 6, 2026 08:31
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.

1 participant