Repository navigation
Replies: 2 comments 5 replies
|
A small update in general for all discussions, a Tailscale device has been provided to am17an for testing with RDNA3.5 and 4. I myself can provide another machine through Tailscale with RDNA3.5 and 4 but the 4 is over TB5 in an external razor enclosure and would include a .pem and ssh access with root. |
5 replies
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
AMD PR Set 4 of 6 — Review and Summarization
Johannes and llama.cpp team, below is a group of related patches from AMD intended to optimize a set of high-priority models on the ROCm backend. I've grouped these together — from a larger set of 25 patches — to hopefully make your job easier in reviewing them, and I've provided a short summary for each. These PR numbers (
#59,#67, etc.) refer to the AMD team's downstream fork atAMD-Ecosystem/llama.cpp, where this work landed first; the goal is to bring it upstream in reviewable batches.This fourth group is the decode path: cutting launch count and lifting wave occupancy by fusing work into the GEMV dispatch, plus one fusion-related correctness fix. The gains are modest individually but compound on small models, where launch overhead dominates.
4. Matvec / Fusion — Decode Optimizations
wk/wvat model load so the graph emits oneMUL_MATinstead of two, doubling the MMVQ row count and lifting wave occupancy from 12.8 to 16.0 waves/SIMD. +1–2% on small models (0.5B–4B), flat on large models where FFN dominates.ncols_dst==1) tails into the GEMV epilogue: non-gated silu/sigmoid, silu*mul, and residual add through a view. Launches per token drop 1263 -> 1103, ~+1.4% tg128.cudaStreamEndCaptureabort on decode with graph-opt on (MoE + shared expert): op-fusion was absorbing the shared-expert join add, so the aux stream was never rejoined. Caps the fusion horizon at the join node while a concurrent region is active. Depends on Port to Visual C++. #36.As mentioned in discussion 3 of 6 I have spoken to @am17an please feel free to start pushing PRs into llama.cpp and reference this discussion, also as you tag this discussion I'll update the PR links to the llama.cpp PRs as they come in for accuracy.
Discussions:
AMD PR Set 1 of 6 — Tooling and Profiling modifications and additions
AMD PR Set 2 of 6 — MMQ and MoE - MatMul Optimizations
AMD PR Set 3 of 6 — Flash Attention Optimization RDNA3.5
AMD PR Set 4 of 6 Matvec and Fusion Decode Optimizations
AMD PR Set 5 of 6 — GEMM Prefill Weight Optimizations
AMD PR Set 6 of 6 - Layout and Concurrency Optimizations
All reactions