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