82 lines
3.6 KiB
Markdown
82 lines
3.6 KiB
Markdown
|
|
# 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 · 给 甄静 + 之之的家
|