Skip to content
This repository was archived by the owner on Oct 8, 2026. It is now read-only.

ggml: recover two upstream commits dropped during the #28 sync - #30

Merged
dzannotti merged 2 commits into
masterfrom
sync/recover-dropped
Sep 15, 2026
Merged

dzannotti merged 2 commits into
masterfrom
sync/recover-dropped

Conversation

@dzannotti

Copy link
Copy Markdown

Problem

The upstream sync in #28 was landed as a squashed PR because divergence required manual
conflict resolution. The resolution silently dropped two upstream commits entirely:

  • 38a5b42d9 — HIP: Enable AllReduce for ROCm (ggml-org#27825)
  • 9f31776c3 — opencl: choose the MoE expert matmul by batch size for speculative decoding/MTP (ggml-org#27637)

Both were dropped completely — every file each commit touched is unmodified from the
pre-sync merge-base — so there is no half-applied state and no build breakage today. The
observable effect is that ROCm AllReduce init returns nullptr, the dispatcher in
ggml-cuda.cu treats that as "init failed", and multi-GPU ROCm silently falls back to the
meta backend's generic AllReduce. The OpenCL MoE batch-size heuristic is simply absent.

How this was found

Of the 251 files touched by the 72 upstream commits in the sync window, 228 are byte-identical
to upstream. For the remainder, any file that upstream modified but that we never modified
since the merge-base is by definition a dropped change:

MB=$(git merge-base HEAD upstream/master)
git diff --name-only $MB upstream/master | while read -r f; do
    git diff --quiet HEAD upstream/master -- "$f" && continue
    n=$(git diff --numstat $MB HEAD -- "$f" | awk '{print $1+$2}')
    [ -z "$n" ] && echo "DROPPED: $f"
done

Change

Both commits cherry-picked with -x. Both applied with zero conflicts. Re-running the audit
against this branch returns empty — all 72 upstream commits are now accounted for.

Testing

Not built locally. These touch only HIP and OpenCL backend paths, which do not compile in a
default CPU/CUDA build, so standard CI will not exercise them.

Needs GGML_HIP=ON and GGML_OPENCL=ON builds before merge.

Follow-up

Once this lands, master still reports "72 commits behind" because the squash recorded no
upstream ancestry. That is fixed separately with git merge -s ours upstream/master, which
keeps our tree byte-identical and only records the parent link. See the SYNC.md PR.

wanghqc and others added 2 commits September 15, 2026 21:43
…coding/MTP (ggml-org#27637)

* opencl: gate the prebuilt q4_0 MoE GEMM on routing count

* opencl: stop writing zeros into the padded MoE activation slots

* opencl: rephrase claude's comments

---------

Co-authored-by: Li He <lih@qti.qualcomm.com>
(cherry picked from commit 9f31776)
@dzannotti
dzannotti merged commit 8a400d0 into master Sep 15, 2026
16 of 32 checks passed
@dzannotti
dzannotti deleted the sync/recover-dropped branch September 15, 2026 21:01
dzannotti added a commit that referenced this pull request Sep 15, 2026
* upstream/master: (72 commits)
  HIP: Enable AllReduce for ROCm (ggml-org#27825)
  opencl: choose the MoE expert matmul by batch size for speculative decoding/MTP (ggml-org#27637)
  ci: build MUSA for only 1 arch (ggml-org#28944)
  docs: Rule of thumb for AI review time [no ci] (ggml-org#28945)
  rpc : hash-cache only weights (ggml-org#28789)
  cuda: support row-contiguous SUM_ROWS (ggml-org#26308)
  models : move build_arch_graph() after graph() template specialization (ggml-org#28934)
  vulkan: support sparse Flash Attention (ggml-org#28105)
  OpenVINO: optimize stateful decode and GPU MoE inference (ggml-org#28638)
  opencl: add generic ssm_scan (ggml-org#28881)
  ci: bump kleidiai runners from 22.04 to 24.04 (ggml-org#28885)
  metal : add FA kernels for HSK=96, HSV=64 (MiniCPM3) (ggml-org#28599)
  ci: Bump CUDA Windows x64 builds to 13.4.1 (ggml-org#28930)
  ci : fix android release (ggml-org#28936)
  cuda : enable i16 and i32 for DUP (ggml-org#28897)
  cmake : use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR (ggml-org#28771)
  webui: stop re-probing disabled /tools endpoint on every message (ggml-org#28646)
  ci : reuse build tag name when used instead of safe one (ggml-org#28911)
  CI: hip-quality-check: ignore spill added in bfdc321 (ggml-org#28909)
  HIP: fattn-mma: use fp32 accumulation on MFMA devices (ggml-org#28576)
  ...
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants