82 lines
3.6 KiB
Markdown
Raw Normal View History

# 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 · 给 甄静 + 之之的家