Skip to content

Add ATom Kimi-K3 for MI355X - #184

Open
itej89 wants to merge 6 commits into
ROCm:developfrom
itej89:coketaste/add_atom_kimi_k3
Open

Add ATom Kimi-K3 for MI355X#184
itej89 wants to merge 6 commits into
ROCm:developfrom
itej89:coketaste/add_atom_kimi_k3

Conversation

@itej89

@itej89 itej89 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Introduces ATom (ROCm/ATOM) integration to MAD, ported from MAD-Private client-perf branch
  • Adds pyt_atom_kimi-k3 tag for Kimi-K3 on MI355X (gfx950, TP8)
  • Recipe sourced from ROCm/ATom PR #1718 (recipes/Kimi-K3.md)

Files

File Purpose
docker/pyt_atom.ubuntu.amd.Dockerfile ATom Docker image (FROM rocm/atom-dev:latest)
scripts/atom/run.sh Shell entry point — arg parsing, lm-eval install, calls run_atom.py
scripts/atom/run_atom.py Python driver — server launch, serving benchmarks, GSM8K accuracy, profiling, CSV output
scripts/atom/models.json Inner models.json for standalone dev-mode runs
scripts/atom/configs/default.yaml Serving benchmark (TP8, ISL 1k/4k, OSL 1k, mc 64/128/256)
scripts/atom/configs/perf.yaml Recipe env vars (AITER FlyDSL, Triton GEMM, FP8 KV cache)
scripts/atom/configs/accuracy.yaml GSM8K 5-shot accuracy (expected: 0.9538–0.9591)
models.json New pyt_atom_kimi-k3 entry

ATom recipe env vars

ATOM_LOADER_USE_THREADPOOL=1    ATOM_USE_TRITON_GEMM=1
ATOM_LOADER_THREADPOOL_WORKERS=16   AITER_USE_GROUPED_GEMM=0
ATOM_SYNC_AFTER_LOAD=1          ATOM_USE_TRITON_MOE=0
ATOM_DIST_TIMEOUT_SECONDS=3600  AITER_FLYDSL_FORCE=1
                                AITER_FORCE_GFX1250=0

Notes

  • rocm/atom-dev:latest does not yet include K3 — override BASE_DOCKER via --additional-context with a K3-enabled image until [ATOM][Kimi-K3] ATOM main support Kimi-K3 ATOM#1718 merges
  • skip_gpu_arch: "gfx942, gfx906, gfx908, gfx90a, A100, H100, V100" matches upstream MXFP4 pattern

Test plan

🤖 Generated with Claude Code

Tej Kiran and others added 2 commits July 28, 2026 18:13
Introduces ATom (ROCm/ATOM) integration to MAD, modeled after
MAD-Private client-perf. Includes Dockerfile, run scripts, and
Kimi-K3 config based on ROCm/ATom PR #1718 recipe (gfx950 TP8,
MXFP4 w/ FlyDSL SiTUv2, FP8 KV cache).

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Tej Kiran and others added 4 commits July 28, 2026 20:02
…overs

Must-fix:
- Remove internal references (MAD-private, client-perf-hub, PR #380)
- Remove dead --profile flag and rocm-trace-lite clone from run.sh
- Remove duplicate --kv_cache_dtype from perf.yaml, fix batched tokens to 10240
- Add missing env vars (ATOM_USE_UNIFIED_ATTN, ATOM_FORCE_ATTN_TRITON)
- Simplify skip_gpu_arch to gfx942 (matches convention)
- Remove atom_default tag (prevents accidental sweep of 1TB+ checkpoint)
- Remove dev leftover scripts/atom/models.json

Should-fix:
- Guard HF_HUB_CACHE in run.sh (match vLLM pattern)

Co-Authored-By: Claude <noreply@anthropic.com>
- Dockerfile: use rocm/atom-dev:rocm7.2.4_..._kimi_k3 image
- Config: add all ATOM/AITER env vars from the MI355X recipe
- Fix --max-num-batched-tokens to 10240 (recipe value)

Co-Authored-By: Claude <noreply@anthropic.com>
Use MAD_DATAHOME as the model path directly instead of joining with
model name. Matches vLLM (run_vllm.py:436) and SGLang (run_sglang.py:317)
behavior. Removes CHECK_LOCAL_DATA gate.

Co-Authored-By: Claude <noreply@anthropic.com>
vLLM and SGLang use model-specific Dockerfile names
(pyt_vllm_kimi_k3, pyt_sglang_kimi_k3). ATom should too.

Co-Authored-By: Claude <noreply@anthropic.com>
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