← All AgentX optimizations

AgentX industry impact · Kernels

ROCm AITER

Long-context execution in ATOM, AMD vLLM, and AMD SGLang depends on matching lower-level AITER kernels, because a parallelism strategy at the engine layer is only real if the kernels can express it.

tokens covered by widened row indexing
>131k
addressing for pools above 4 GB
64-bit
rows protected from silent wrong-row access
~150M

Context-parallel process groups

Prefill context-parallel process groups provide the extra query-sharding dimension that prefill context parallelism needs, and also widen fused-kernel row indexing for prompts above 131,000 tokens. Decode context parallelism (DCP) shards KV across the tensor-parallel GPUs already present, so a longer sequence or a larger batch fits without replicating the whole cache on every rank.

Upstream pull requests

Address width: a failure short requests never reach

Large caches exposed a class of failure that short fixed requests essentially never reach: address width. A 32-bit offset is entirely adequate until a single cache pool crosses the boundary, at which point the arithmetic wraps and the kernel addresses the wrong row without any error being raised.

AITER added runtime 64-bit dispatch for batch prefill above 4 GB, 64-bit MLA offsets above 2 GB, and 64-bit addressing throughout DeepSeek-V4’s unified cache paths — the last preventing silent reads and writes to the wrong row in pools of roughly 150 million rows.

Two panels of a unified KV pool of about 150 million rows: with 32-bit offsets an access past 4 GB wraps to a different row; with 64-bit offsets the addressed row is the intended one.
A 32-bit offset is adequate until one cache pool crosses 4 GB, at which point the arithmetic wraps and the kernel reads or writes a different row without raising an error.View full-resolution image

Persistent MLA decode for common head packings

DeepSeek-V4 decode also gained a persistent MLA kernel for 64-head and 128-head MTP packings. Those two head counts are what ordinary decoding and speculative verification actually produce, so this gives the engine a dedicated long-context path for its common shapes instead of treating them as incidental variants of a kernel written for short contexts. It is the same argument as the vLLM AITER sparse-MLA selection: at long context the generic path is not a modest compromise, it is the wrong kernel.

Upstream pull requests

Other projects