Skip to content

record(BACKEND-ROCM): index the decode profile, which refutes the transfer hypothesis - #1295

Open
joral wants to merge 1 commit into
mudler:mainfrom
joral:record/rocm-decode-profile
Open

record(BACKEND-ROCM): index the decode profile, which refutes the transfer hypothesis#1295
joral wants to merge 1 commit into
mudler:mainfrom
joral:record/rocm-decode-profile

Conversation

@joral

@joral joral commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

gfx1200 decode is kernel-bound. Profiled with rocprofv3 on an idle host, decode
isolated by differencing --max-tokens 4 against 36: wall 88.7 ms/token, GPU
kernel dispatch 59.99 ms/token, and real host/device transfer 0.885 ms/token.
The 59.31 ms/token that hipMemcpyAsync reports is the CPU blocking on unfinished
GPU work, not PCIe, so the MoE reference path's host round-trips are not the
cost anyone would have guessed they were.

Two measured leads: QuantizeQ8KK at 35% of GPU time, and GdnPostConvK at 19%.
The first has a named backend-agnostic cause on main, where MoeBlock quantizes
the same activation twice for gate and up.

Filed and not fixed, so the row names BACKEND-ROCM as owner: the quantizer is
not on main, and GdnPostConvK has no hypothesis yet. Both want red-first
evidence rather than a drive-by change.

Closes nothing; #1294 stays open as the tracked gap.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: Claude:claude-sonnet-5 [Claude Code]

@localai-org-maint-bot

Copy link
Copy Markdown
Collaborator

The record addition is coherent and correctly separates API blocking time from measured H2D/D2H transfer time, but this branch is currently conflicting with main. Please rebase and preserve the current append-only issue-index entries.

…nsfer hypothesis

gfx1200 decode is kernel-bound. Profiled with rocprofv3 on an idle host, decode
isolated by differencing --max-tokens 4 against 36: wall 88.7 ms/token, GPU
kernel dispatch 59.99 ms/token, and real host/device transfer 0.885 ms/token.
The 59.31 ms/token that hipMemcpyAsync reports is the CPU blocking on unfinished
GPU work, not PCIe, so the MoE reference path's host round-trips are not the
cost anyone would have guessed they were.

Two measured leads: QuantizeQ8KK at 35% of GPU time, and GdnPostConvK at 19%.
The first has a named backend-agnostic cause on main, where MoeBlock quantizes
the same activation twice for gate and up.

Filed and not fixed, so the row names BACKEND-ROCM as owner: the quantizer is
not on main, and GdnPostConvK has no hypothesis yet. Both want red-first
evidence rather than a drive-by change.

Closes nothing; mudler#1294 stays open as the tracked gap.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: Claude:claude-sonnet-5 [Claude Code]
@joral
joral force-pushed the record/rocm-decode-profile branch from b9b545e to 9a85d08 Compare August 19, 2026 12:53
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