Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions ops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,14 @@ grep -rl my_op . | xargs sed -i 's/my_op/<你的算子名>/g'

## 算子索引

> 硬件平台合计 **3 个**:`ascend910`(sdpa / sdpa_math)· `p800-kunlunxin`(sdpa / sdpa_math / embedding)· `cambricon` / `mlu590`(MLU590,sdpa + 13 个算子)。 算子级明细见下表「硬件平台」列与各算子的 `REPORT.md` 表头。

> 硬件平台合计 **3 个**:`ascend910`(仅 sdpa)· `p800-kunlunxin`(sdpa / embedding)· `cambricon` / `mlu590`(MLU590,sdpa · embedding · 13 个 Torch/Triton 级算子)。 算子级明细见下表「硬件平台」列与各算子的 `REPORT.md` 表头。
> 硬件平台合计 **3 个**:`ascend910`(sdpa / sdpa_math / embedding)· `p800-kunlunxin`(sdpa / sdpa_math / embedding)· `cambricon`/`mlu590`(sdpa / embedding + 13 个 Torch/Triton 级算子)。 算子级明细见下表「硬件平台」列与各算子的 `REPORT.md` 表头。

| 算子 | 硬件平台 | 开发级别 | 路线 | 状态 | 交付报告 | 备注 |
|---|---|---|---|---|---|---|
| [sdpa](sdpa/)(scaled_dot_product_attention) | **3** · ascend910 / p800-kunlunxin / mlu590 | Triton / 厂商委托 | A1(aten 拦截) | ✅ 定稿 | [REPORT](sdpa/REPORT.md) | ascend910 + p800-kunlunxin + mlu590 · 三平台黄金 397/397(Ascend 历史 265/265) · [平台绑定](sdpa/PLATFORM.md) / [多平台合并](sdpa/MERGE.md) |
| [sdpa_math](sdpa_math/)(aten::_scaled_dot_product_attention_math) | 2 · ascend910 / p800-kunlunxin | Triton / vendor O/LSE + exact-P | A1(aten 拦截) | ✅ 定稿 | [REPORT](sdpa_math/REPORT.md) | SDPA math 后端(双输出 out+概率图)· 三平台黄金 175/175 · NPU fp16 1.16-2.03x · P800 direct 1.46-2.21x native |
| [embedding](embedding/)(aten::embedding) | 2 · p800-kunlunxin / ascend910 | 厂商委托 / Triton 探针 | A1(aten 拦截) | ✅ 定稿 | [REPORT](embedding/REPORT.md) | p800-kunlunxin + ascend910 · 稠密查表/反向 · 黄金 117/117(Ascend 三层+350 PASS)|
| [embedding](embedding/)(aten::embedding) | **3** · ascend910 / p800-kunlunxin / cambricon | 厂商委托 / Triton 探针 | A1(aten 拦截) | ✅ 定稿 | [REPORT](embedding/REPORT.md) | 三平台稠密查表/反向 · Ascend 三层+350 PASS · MLU 174/174 逐位 · [平台绑定](embedding/PLATFORM.md) / [多平台合并](embedding/MERGE.md) |

| [embedding](embedding/)(aten::embedding) | **2** · p800-kunlunxin / cambricon | 厂商委托 / Triton 探针 | A1(aten 拦截) | ✅ 定稿 | [REPORT](embedding/REPORT.md) | p800-kunlunxin + cambricon · 稠密查表/反向 · 黄金 174/174 逐位 · [MLU 报告](embedding/reports/cambricon.md) |
| [type_as](type_as/) | 1 · cambricon | Triton 级 | A1 aten | 三层全绿 | [REPORT.md](type_as/REPORT.md) | 黄金 111/111;位级一致 |
| [clone](clone/) | 1 · cambricon | Triton 级 | A1 aten | 三层全绿 | [REPORT.md](clone/REPORT.md) | 黄金 48/48;存储独立 |
| [contiguous](contiguous/) | 1 · cambricon | Triton 级 | A1 aten | 三层全绿 | [REPORT.md](contiguous/REPORT.md) | 黄金 114/114;转置 swiz 提速 ~80x |
Expand Down
31 changes: 31 additions & 0 deletions ops/sdpa_math/MERGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 多平台合并流程(MERGE)— sdpa_math

> 新平台实现合入本目录的固定流程(裁剪自 ops/sdpa/MERGE.md 与
> ops/embedding/MERGE.md 范式)。核心原则:**黄金/测试/注册链复用,
> 只写 kernel 本体**。

## 七步流程

1. **黄金复用**: `goldendata/` 平台无关(CPU 生成),新平台直接跑
`script/check_accuracy.py`——不过黄金不谈合并
2. **kernel 本体**: `kernel/<platform>_level.py`(现有:
`triton_level.py` ascend910 路线 / `p800_fast_level.py` vendor 路线)
3. **register 平台分发**: `register.py` 的 `_fwd`/backend 选择加平台
分支(含 `_DEVICE_PROBE` 能力守卫参考 ops/embedding)
4. **_profile 探测链**: 平台 try-import 段(对齐 sdpa/embedding 顺序)
5. **三层验证**: `python3 test/{kernel,op,framework}_level.py <platform>`
+ `example.py <platform>` 一键
6. **包化回归**: `python3 ops/test_packaging.py`(全算子导入扫描)
7. **文档同步**: README/REPORT 平台列、reports/ 增量、PLATFORM.md
绑定项、本文件、CHANGELOG

## 合并冲突解决范式(库级惯例)

- 文档冲突: 双方内容**并列**(验证矩阵按平台列拆行),不删任何一方
- 代码冲突: 统一采 platform facade / backend 选择器新范式
- rebase 后必须: 本机全链回归 + `ops/test_packaging.py` 双绿才可合并

## 绑定速查

见 [PLATFORM.md](PLATFORM.md)(ascend910 64×64 tile 上限 / p800
vendor O/LSE + exact-P)。
Loading