Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
baa3b01
[OPUS] enable gfx1250 support for OPUS tests (#2394)
carlushuang Mar 22, 2026
31586c5
perf: optimize _moe_mxfp4_sort_kernel to reduce Triton recompilation …
valarLip Mar 22, 2026
83ebb89
enable topk_softmax with share expert scoring function (#2356)
ganyi1996ppo Mar 23, 2026
c585545
refactor(pa): use ctypes binding for pa_fwd and pa_ps_fwd (#2395)
sijyang Mar 23, 2026
378efe2
Refactor topk softmax asm bind (#2327)
yzhou103 Mar 23, 2026
37a5c43
[FEAT] exclude torch.h in a8w8 cu files (#2382)
junxiaguo Mar 23, 2026
40dc16b
replace ck_tile type convert by opus cast (#2331)
yzhou103 Mar 23, 2026
605b7cb
opus: tiled scaled MFMA + fix mfma_adaptor_swap_ab (#2384)
kaiyang-1 Mar 23, 2026
17d4a33
Fix MHA bwd numeric issue (#2379)
slippedJim Mar 23, 2026
ea18155
mla nps fp8 mode get_meta_param avoid kv_tail_len < max_seqlen_q and…
minmengdie Mar 23, 2026
5f9fdc9
Add MoE ASM ctypes migration on top of #2255 (#2341)
zufayu Mar 23, 2026
5b3eb3d
[TRITON] Add Attention support to the bench_models benchmarking scrip…
lucas-santos-amd Mar 23, 2026
b303738
update decode_update_mla_metadata_v1 for atom dp attention (#2392)
junhaha666 Mar 23, 2026
c992051
[FlyDSL] Add FlyDSL MoE a4w4 support and update kernels (#2390)
zhiding512 Mar 23, 2026
3170a51
edit batched_gemm_a8w8 and gemm_a16_w16 kernel agrs for no recompile …
junhaha666 Mar 23, 2026
6bc4a34
Add GEMM-A16W16-ATOMIC-N=256-K=6144 triton gemm tune config (#2213)
wufann Mar 23, 2026
df3104a
fix tuned fmoe (#2431)
zhiding512 Mar 23, 2026
7f89069
mdf_asm_kl_bind (#2412)
amd-ruitang3 Mar 23, 2026
d1c7abc
[setup][flydsl] Add flydsl into aiter install requires (#2430)
zejunchen-zejun Mar 23, 2026
c3c96d3
[TRITON] Improve config selection for RDNA gpus (#2402)
skysnow2001 Mar 23, 2026
fe63be2
[TRITON] Fix unit tests on `gfx950` (#2403)
brunomazzottiamd Mar 24, 2026
45f6d97
[HIP] Optimized fused split GDR decode (#2326)
huizzhan Mar 24, 2026
d674968
[Misc] logging: set propagate=False to prevent duplicate log output (…
ZiguanWang Mar 24, 2026
10b7835
Fix: use pull_request_target for PR welcome comment on forked PRs (#2…
gyohuangxin Mar 24, 2026
a35002e
CI: Pin linter versions in CONTRIBUTE.md and update pre-commit hook (…
gyohuangxin Mar 24, 2026
b0a54c2
CI: Add opt-in MI355 Triton runner via ci:triton-355 label (#2347)
gyohuangxin Mar 24, 2026
f84785c
fix moe stage2 tune config (#2438)
zhiding512 Mar 24, 2026
569d6af
[TRITON] Improve RDNA config selection for FA (#2397)
skysnow2001 Mar 24, 2026
6812d08
Enable gfx1250 support (#2450)
Boss2002n Mar 24, 2026
c9ef531
optimize the flash attention (#2265)
scxiao Mar 24, 2026
91ce190
Assembly kernel cleanup work (#2439)
amd-ruitang3 Mar 25, 2026
5dcd311
CI: auto-update split test FILE_TIMES (#2458)
gyohuangxin Mar 25, 2026
149a8f6
add fused_qknorm hip kernel (#2442)
XiaobingSuper Mar 25, 2026
1dd3c03
feat: add fast gelu (#2220)
amd-youchen Mar 25, 2026
92ce2b6
Fix build CK pipeline (#2399)
EnricoDeg Mar 25, 2026
a68948c
[OPUS] gfx1250 support for opus wmma scale and moe_sorting kernel (#2…
carlushuang Mar 25, 2026
0e172ab
reduce wasted get_module overhead for module with custom module name …
valarLip Mar 25, 2026
bc45edd
fix moe gemm tuned config (#2463)
zhiding512 Mar 25, 2026
1f8f020
Skip `test_metadata_redirect.py` on archs other than `gfx942` (#2456)
brunomazzottiamd Mar 25, 2026
28b2942
[Triton] Fix bench_mha (#2317)
micmelesse Mar 25, 2026
5c3f6e3
test_mla_persistent.py split kv reference fix max_seq_q != 1 error (#…
minmengdie Mar 26, 2026
8fa63f4
CI: fix dubious ownership for sglang checkout (#2477)
gyohuangxin Mar 26, 2026
27acf6c
CI: use pip editable install and safe.directory in runtime CI (#2474)
gyohuangxin Mar 26, 2026
f02877b
Fix CKTile blockscale GEMM to read strides from tensor metadata (#2466)
samremes Mar 26, 2026
ce27de0
Add LSE output support for MLA decode qseqlen=1 persistent kernel (gf…
fangche123 Mar 26, 2026
3fcfeac
tuned qwen3.5 gemm (#2485)
ganyi1996ppo Mar 26, 2026
b4b7516
[Triton] Flash Attention Triton Windows build support (#2433)
micmelesse Mar 26, 2026
61804c6
fix(gemm): add EVEN_MN heuristic to restore vectorized store in gemm(…
Liang-jianhao97 Mar 27, 2026
acb21e5
rm gemm_common bind (#2425)
yzhou103 Mar 27, 2026
d3ed648
assert when found duplicated tuned shape (#2376)
yzhou103 Mar 27, 2026
46afd48
Revert "assert when found duplicated tuned shape (#2376)" (#2502)
gyohuangxin Mar 27, 2026
f71a5a2
The default enabling of TRITON_HIP_USE_ASYNC_COPY in Triton has led t…
Liang-jianhao97 Mar 27, 2026
fc0c54b
Gemm & moe tunning for DeepSeek-R1 in InferenceX FP4 case (#2261)
inkcherry Mar 27, 2026
3b98502
add tuned config for qwen3.5 fp8,a8w8 blockscale gemm (#2324)
zovonoir Mar 27, 2026
be1ab22
fix use after free issue in moe_sorting_fwd (#2381)
wangxunx Mar 27, 2026
23d76de
Add head_num=40 for mla fp8 reduce kernel for qwen3.5 (#2481)
yichiche Mar 27, 2026
f6e4a25
fix use after free issue in moe_sorting_opus_fwd (#2500)
wangxunx Mar 27, 2026
0b1dea6
add more configs (#2506)
valarLip Mar 27, 2026
98d2a0a
Fix precision bug and add gelu kernels for 64x256 (#2471)
JohnNikolay84 Mar 28, 2026
1b0a587
support comments in csv (#2422)
feifei14119 Mar 28, 2026
849b888
support_int64_ctypes (#2486)
amd-ruitang3 Mar 29, 2026
35eea80
[Misc][Bugfix][Perf] Remove redundant bpreshuffle tuner, fix type hin…
valarLip Mar 29, 2026
4fc1787
[HIP] Refine split fused GDR decode test (#2446)
huizzhan Mar 30, 2026
bf26e4f
[CI][CK_TILE] Update CK and fix fmha_fwd arg init (#2334)
hyoon1 Mar 30, 2026
a4929b7
CI: auto-update split test FILE_TIMES (#2459)
github-actions[bot] Mar 30, 2026
d798c4b
CI: replace MI355 runner labels with MI35X (#2467)
gyohuangxin Mar 30, 2026
7ea98c6
mhc:add mhc_post hip kernel (#2479)
junhaha666 Mar 30, 2026
98cd4cb
Fix data overwrite problem in asm fmoe 1stage kernels for mi350 (#2507)
JohnNikolay84 Mar 30, 2026
2bca98c
CI: add selectable Docker password secret for release workflow (#2528)
gyohuangxin Mar 30, 2026
b881709
Revert "Fix data overwrite problem in asm fmoe 1stage kernels for mi3…
valarLip Mar 30, 2026
ad9e1e7
CI: Update runner name in Aiter release package pipeline (#2532)
gyohuangxin Mar 30, 2026
ea95946
CI: add docker username input for aiter release workflow (#2535)
gyohuangxin Mar 30, 2026
5f88ca1
update ck (#2462)
lalala-sh Mar 30, 2026
4f14325
Add kernel filter to the bench_models.py script (#2490)
lucas-santos-amd Mar 30, 2026
91c00df
fix tensor_address_log (#2523)
yzhou103 Mar 31, 2026
a8a91a8
Remove torch dependency in MHA shared lib build (#2501)
slippedJim Mar 31, 2026
7c26baf
Refactor RoPE Operators (#2534)
ruanjm Mar 31, 2026
ad47aab
Rename 32x256 kernel to as they were before PR #2507 (#2538)
JohnNikolay84 Mar 31, 2026
357e600
1 (#2520)
zyzshishui Mar 31, 2026
fdc40a0
add flydsl splitk gemm and update kimi-2 bf16 tunned config (#2536)
XiaobingSuper Mar 31, 2026
e18dd0e
Revert "Rename 32x256 kernel to as they were before PR #2507 (#2538)"…
valarLip Mar 31, 2026
e47cc0e
(alternative to #2508) Fix/splitk tmp_out undersized buffer avoid dou…
rbrugaro-amd Mar 31, 2026
8cfe5e2
Refactor allreduce for supporting prefill case (#2453)
TennyWang1223 Mar 31, 2026
9dd4ae3
[TRITON] Unified attention FP8 cleanup (#2360)
cagrikymk Mar 31, 2026
608f0be
Add FP8 hdim=256 tile for batch prefill kernel (#2549)
Jeff-Huang Apr 1, 2026
fa35072
fix(gemm_a8w8_bpreshuffle): pass splitK/KBatch to CK kernels (#2335)
AviralGoelAMD Apr 1, 2026
b4e68d6
Update gfx942 PA PS kernels and wire stride_scale_blk in asm_pa (#2522)
fangche123 Apr 1, 2026
06fd406
fix tests not supported in mi355 (#2553)
yzhou103 Apr 1, 2026
6a64b85
CI: add AMD CI job monitor workflow (#2550)
gyohuangxin Apr 1, 2026
e537552
CI: move monitor scripts under .github/scripts (#2572)
gyohuangxin Apr 1, 2026
c0e0701
CI: revert pre-checks Ruff step to baseline behavior (#2574)
gyohuangxin Apr 1, 2026
94a6edd
assert when found duplicated shape (#2503)
yzhou103 Apr 1, 2026
0a9acf4
Fix FlyDSL split-k HGEMM correctness and precision issues (#2567)
XiaobingSuper Apr 1, 2026
6216230
Update gfx950 PA PS kernels and wire stride_scale_blk in asm_pa (#2569)
fangche123 Apr 1, 2026
d53b4ab
fix: del asm layernorm (#2571)
TennyWang1223 Apr 1, 2026
a65065d
fix(hip): launch FMHA Philox, sampling, and MM kernels on current str…
kkHuang-amd Apr 1, 2026
381129b
Fix nondeterministic RNG in test_fused_mxfp4_quant (#2562)
nidal567 Apr 1, 2026
b111372
add WARP_SIZE define in csrc/include/aiter_hip_common.h for host and…
junhaha666 Apr 2, 2026
43b7379
Fix numerical accuracy in allreduce_fusion_kernel_1stage (#2586)
hubertlu-tw Apr 2, 2026
e4d4315
[FIX] fix a8w8 asm kernel ks>1 mismatch (#2526)
junxiaguo Apr 2, 2026
b879f21
[OPUS] Add gfx950 smem transpose load (#2480)
kaiyang-1 Apr 2, 2026
af6b116
Fix error checking in aiter_hip_common.h (#2225)
draganmladjenovic Apr 2, 2026
6f68709
replace ck_tile api with opus api in some hip kernels (#2533)
junhaha666 Apr 2, 2026
470bbfc
Fix some benchmark scripts so that they generate the output CSVs (#2555)
apicciau Apr 2, 2026
f299f57
[Triton] Add sliding window support for sink attention (#2505)
kyle-256 Apr 2, 2026
a530b92
fix STR_DTYPE_TO_TORCH_DTYPE import issue (#2593)
etemadiamd Apr 2, 2026
a1bdcec
Fix pa_mqa logits compile failure on triton 3.6.0 caused by MFMA inst…
1am9trash Apr 3, 2026
6c2813a
[TRITON] Reduce GEMM unit tests (#2584)
vgokhale Apr 3, 2026
a381890
Group_topk: moe_fused_gate support num expert is not power of 2 (192…
junhaha666 Apr 3, 2026
45defe6
fix: split asm_topksoftmax into separate module to fix ctypes JIT bui…
zufayu Apr 3, 2026
4653a07
[TRITON] Reduce rope tests (#2588)
vgokhale Apr 3, 2026
3f7313f
replace ck_tile api by opus in activation (#2589)
yzhou103 Apr 3, 2026
2c11278
add fused_qk_norm_group_quant kernel (#2527)
yzhou103 Apr 3, 2026
3b6450f
CK mha bwd: add sink attention score gradient support (#2321)
LJ-underdog Apr 4, 2026
35d347b
Fix group topk dispatch for glm5 (#2611)
junhaha666 Apr 4, 2026
1e9d2cc
Update some HIP kernels support different warp_size(topksoftmax/group…
junhaha666 Apr 4, 2026
9cc132a
MI350 mla ps mode support nhead=8 mtp=4 feature (#2461)
minmengdie Apr 4, 2026
deefb11
[FlyDSL] Optimize a4w4 MOE kernels (#2581)
lalala-sh Apr 4, 2026
e905544
Add FlyDSL fused RoPE + KV Cache backend
sunway513 Apr 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 9 additions & 4 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,22 @@ for file in $files; do
done

# if clang-format exists, run it on C/C++ files
if command -v clang-format >/dev/null; then
CLANG_FORMAT=""
if command -v clang-format-18 >/dev/null; then
CLANG_FORMAT="clang-format-18"
fi

if [[ -n "$CLANG_FORMAT" ]]; then
for file in $files; do
[[ -L $file ]] && continue
if [[ -e $file ]] && echo $file | grep -Eq '\.c$|\.h$|\.cuh$|\.hpp$|\.cpp$|\.cl$|\.h\.in$|\.hpp\.in$|\.cpp\.in$'; then
echo "clang-format $file"
clang-format -i -style=file "$file"
echo "$CLANG_FORMAT $file"
$CLANG_FORMAT -i -style=file "$file"
git add -u "$file"
fi
done
else
echo "clang-format command not found, skipping file formatting."
echo "clang-format-18 not found, skipping file formatting."
fi

if command -v black >/dev/null; then
Expand Down
3 changes: 2 additions & 1 deletion .github/scripts/build_aiter_triton.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@ dpkg -l | grep rocm || echo "No ROCm packages found."

echo
echo "==== Install dependencies and aiter ===="
git config --global --add safe.directory /workspace
pip install --upgrade pandas zmq einops numpy==1.26.2
pip uninstall -y aiter || true
pip install --upgrade "pybind11>=3.0.1"
pip install --upgrade "ninja>=1.11.1"
pip install tabulate
python3 setup.py develop
pip install -e .

# Read BUILD_TRITON env var, default to 1. If 1, install Triton; if 0, skip installation.
BUILD_TRITON=${BUILD_TRITON:-1}
Expand Down
98 changes: 98 additions & 0 deletions .github/scripts/list_jobs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#!/usr/bin/env python3
import argparse
import json
from pathlib import Path

import yaml


def parse_args():
parser = argparse.ArgumentParser(
description="Parse workflow files and output job matrix for GitHub Actions."
)
parser.add_argument(
"--workflow-dir",
default=".github/workflows",
help="Directory containing workflow yaml files.",
)
parser.add_argument(
"--workflows",
default="",
help="Comma-separated workflow file names. Empty means auto-discover.",
)
parser.add_argument(
"--exclude-workflows",
default="",
help="Comma-separated workflow file names to skip.",
)
parser.add_argument(
"--exclude-jobs",
default="",
help="Comma-separated job names to skip.",
)
parser.add_argument(
"--out-matrix", required=True, help="Output path for matrix JSON."
)
parser.add_argument(
"--out-workflow-map",
required=True,
help="Output path for workflow -> jobs mapping JSON.",
)
return parser.parse_args()


def parse_csv(raw: str):
return [item.strip() for item in raw.split(",") if item.strip()]


def discover_workflows(workflow_dir: Path):
return sorted(
[path.name for path in workflow_dir.glob("*.yml") if path.is_file()]
+ [path.name for path in workflow_dir.glob("*.yaml") if path.is_file()]
)


def main():
args = parse_args()
workflow_dir = Path(args.workflow_dir)
excluded_workflows = set(parse_csv(args.exclude_workflows))
excluded_jobs = set(parse_csv(args.exclude_jobs))

if args.workflows.strip():
workflow_files = parse_csv(args.workflows)
else:
workflow_files = discover_workflows(workflow_dir)

workflow_files = [wf for wf in workflow_files if wf not in excluded_workflows]

matrix = []
workflow_map = {}

for workflow_file in workflow_files:
workflow_path = workflow_dir / workflow_file
if not workflow_path.exists():
continue

with workflow_path.open("r", encoding="utf-8") as file_obj:
content = yaml.safe_load(file_obj) or {}

jobs = list((content.get("jobs") or {}).keys())
jobs = [job for job in jobs if job not in excluded_jobs]

workflow_map[workflow_file] = jobs
for job in jobs:
matrix.append({"workflow": workflow_file, "job_name": job})

Path(args.out_matrix).write_text(
json.dumps(matrix, ensure_ascii=False), encoding="utf-8"
)
Path(args.out_workflow_map).write_text(
json.dumps(workflow_map, ensure_ascii=False), encoding="utf-8"
)

print(f"Discovered workflows: {len(workflow_map)}")
print(f"Total jobs in matrix: {len(matrix)}")


if __name__ == "__main__":
main()
2 changes: 1 addition & 1 deletion .github/scripts/op_tune.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ declare -a tune_jobs=(
"ck_batched_gemm_bf16:csrc/ck_batched_gemm_bf16:op_tests/test_batched_gemm_bf16.py:python3 csrc/ck_batched_gemm_bf16/batched_gemm_bf16_tune.py -i aiter/configs/bf16_untuned_batched_gemm.csv -o aiter/configs/bf16_tuned_batched_gemm.csv"
"ck_gemm_a8w8:csrc/ck_gemm_a8w8:op_tests/test_gemm_a8w8.py:python3 csrc/ck_gemm_a8w8/gemm_a8w8_tune.py -i aiter/configs/a8w8_untuned_gemm.csv -o aiter/configs/a8w8_tuned_gemm.csv"
"ck_gemm_a8w8_blockscale:csrc/ck_gemm_a8w8_blockscale:op_tests/test_gemm_a8w8_blockscale.py:python3 csrc/ck_gemm_a8w8_blockscale/gemm_a8w8_blockscale_tune.py -i aiter/configs/a8w8_blockscale_untuned_gemm.csv -o aiter/configs/a8w8_blockscale_tuned_gemm.csv"
"ck_gemm_a8w8_blockscale_bpreshuffle:csrc/ck_gemm_a8w8_blockscale_bpreshuffle:op_tests/test_gemm_a8w8_blockscale.py:python3 csrc/ck_gemm_a8w8_blockscale_bpreshuffle/gemm_a8w8_blockscale_bpreshuffle_tune.py -i aiter/configs/a8w8_blockscale_bpreshuffle_untuned_gemm.csv -o aiter/configs/a8w8_blockscale_bpreshuffle_tuned_gemm.csv"
"ck_gemm_a8w8_blockscale_bpreshuffle:csrc/ck_gemm_a8w8_blockscale_bpreshuffle:op_tests/test_gemm_a8w8_blockscale.py:python3 csrc/ck_gemm_a8w8_blockscale/gemm_a8w8_blockscale_tune.py --preshuffle -i aiter/configs/a8w8_blockscale_bpreshuffle_untuned_gemm.csv -o aiter/configs/a8w8_blockscale_bpreshuffle_tuned_gemm.csv"
"ck_gemm_a8w8_bpreshuffle:csrc/ck_gemm_a8w8_bpreshuffle:op_tests/test_gemm_a8w8.py:python3 csrc/ck_gemm_a8w8_bpreshuffle/gemm_a8w8_bpreshuffle_tune.py -i aiter/configs/a8w8_bpreshuffle_untuned_gemm.csv -o aiter/configs/a8w8_bpreshuffle_tuned_gemm.csv"
"ck_gemm_moe_2stages_codegen:csrc/ck_gemm_moe_2stages_codegen:op_tests/test_moe.py:python3 csrc/ck_gemm_moe_2stages_codegen/gemm_moe_tune.py -i aiter/configs/untuned_fmoe.csv -o aiter/configs/tuned_fmoe.csv"
#"ck_gemm_a4w4_blockscale:csrc/ck_gemm_a4w4_blockscale:op_tests/test_gemm_a4w4_blockscale.py:python3 csrc/ck_gemm_a4w4_blockscale/gemm_a4w4_blockscale_tune.py -i aiter/configs/a4w4_blockscale_untuned_gemm.csv -o aiter/configs/a4w4_blockscale_tuned_gemm.csv"
Expand Down
Loading
Loading