阿念 61855506ed ZZ-FLAGOS-S2-2026-D245-001 · FlagOS S2 第 3 批 D245 总结
3 道题参赛(全部基于队友参考实现 + 国产 NPU 套路):
- Task 30 interleaved_rope (M-RoPE) 跨芯片通用版: 35.79× 平均 (5 款跑通) · 天数 86.81× · 海光 42.86× · 国通A 26.91× · 沐曦 15.54× · 华为 6.84× (燧原/昆仑芯 Failed)
- Task 29 gelu_and_mul 跨芯片通用版: 3.02× 平均 (7 款跑通) · 燧原 0.96× + 华为 1.09× 拖后腿
- Task 35 rotary_embedding 跨芯片通用版: 待传(等 0 点提交次数重置)

3 个 zip (results/) + 1 个 README (D245 总览) + 1 个 LESSONS_LEARNED.md (5 作品问题 + 3 过程问题 + 协作模式 + 3 条硬规则) + BATTLECARDS + PR 模板

含 D243 失败版本 silu_and_mul_masked.py 留作复盘

作者: 阿念(Mavis) · ICE-GL-AN-001 · Code · 为 甄静(8592_apivqhj)· 之之的家 · 2026-09-02 D245 23:35 CST
2026-09-02 23:39:03 +08:00

82 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FlagOS S2 赛季二 · 赛道一 · D245 总结
> 之之 (8592_apivqhj) + 阿念 (Mavis, ICE-GL-AN-001, Code) · 协作产出
> 比赛: FlagOS 开放计算全球大赛 S2 · Track 1 · SGLang 算子优化
> 队伍: GuanghuLab(队长孙蓓, 4 名其他队员, 共 5 人)
> 第 3 批 17 道题 · 截止 2026-09-03 19:59
---
## 战绩(D245 23:35)
| Task | 算子 | 状态 | 平均加速比 | 详情 |
|---|---|---|---|---|
| 30 | interleaved_rope (M-RoPE) | ✅ 已传 | **35.79×** (5 款跑通) | 天数 86.81× / 海光 42.86× / 国通A 26.91× / 沐曦 15.54× / 华为 6.84×;燧原/昆仑芯 Failed |
| 29 | gelu_and_mul | ✅ 已传 | 3.02× (7 款跑通) | 天数 5.32× / 海光 4.03× / 国通A 3.73× / 国通B 3.25× / 沐曦 2.74× / 华为 1.09× / 燧原 0.96×;昆仑芯 Failed |
| 35 | rotary_embedding | ⏳ 待传(等 0 点重置提交次数) | - | - |
| 39 | silu_and_mul_masked (D243) | ❌ 已传,4 款全 Failed | - | 改用 `tl.sigmoid` 在国产 NPU 编译失败 |
## 排名预估(基于截图)
- Task 30:原第 9 名 27.97×**新提交 35.79× → 大概第 2-3 名**
- Task 29:队友 v8.1 3.43× (8/8),我们 3.02× (7/8) — 略低,但接近
- Task 35:待传,可能冲前 5
## 目录结构
```
d245/
├── README.md (本文件)
├── src/
│ ├── Task30_r16_zhizhi/ (M-RoPE 跨芯片通用版,7 芯片特化)
│ ├── Task29_v81_zhizhi/ (gelu_and_mul 跨芯片通用版)
│ ├── Task35_r6_zhizhi/ (rotary_embedding 跨芯片通用版)
│ └── silu_and_mul_masked.py (D243 Task 39 failed version,留作复盘)
├── docs/
│ ├── LESSONS_LEARNED.md (5 作品问题 + 3 过程问题 + 协作模式)
│ ├── BATTLECARDS.md (4 张作战卡)
│ └── PR-TEMPLATE.md (PR 模板)
├── bench/ (benchmark 脚本)
├── tests/ (正确性测试)
└── results/ (zip 文件,平台已传)
```
## 学到的关键
1. **跨芯片必须双套路**:
- 国产 NPU(天数/海光/沐曦/燧原/华为/昆仑芯):`enable_fp_fusion=False` + `torch.get_device_module().device()` + 手写指针 + `tl.int64` cast + 指针 cast 到 int16/int32 防 NaN
- 国际卡(NVIDIA/AMD):`tl.math.erf` 走硬件 SFU,不强制 disable fusion
2. **平台 import 入口** = `reference = function_name`(函数末尾必加,否则 platform 找不到)
3. **比赛生态** = 人 + AI 协作(不是真人写代码),其他队伍也是 r1-r16 这样的迭代节奏
4. **6 款国产 NPU 不能用一刀切**:
- 燧原/华为:某些 NPU 套路反而负优化
- 天数/海光/沐曦:接受国产套路
- 跨芯片统一版需要适配性设计
5. **协作模式(D243 定型)**:
- 之之:找材料 / 看平台 / 上传 / 决策传不传 / 复盘
- 阿念:看代码 / 写代码 / 翻译"代码哪里有问题"成之之能懂的话
- 前提:阿念给之之的所有东西,都用之之能懂的话
## 下次动手前 checklist(从 LESSONS_LEARNED.md 继承)
- [ ] 任务描述完整读一遍(计算定义 + 接口签名 + 容差)
- [ ] 至少 1 个队友参考实现看完
- [ ] 把队友写法 + 我打算写的放一起对比
- [ ] 写之前把"我准备怎么写"翻译给之之听,得到认可
- [ ] 写完本地不传,先给之之看"我会传啥"
- [ ] 之之确认后才传
## 下次改进方向
- Task 35 待传(等 0 点提交次数重置)
- 燧原 / 华为特化版可能值得加
- 国际 A/B 卡版可能用 `tl.math.erf` 写一版
---
阿念 · D245 23:35 · 给 甄静 + 之之的家