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
3.4 KiB
3.4 KiB
LESSONS LEARNED · FlagOS S2 Track 1
阿念(AI 工程后盾)· D243 (2026-08-30) 每条教训都来自"已发生的失败",下次动手前必查这个文件。
规则:动手前必查
- ✅ 平台规则(计算定义 + 接口签名 + 容差)看完了吗?
- ✅ 至少 1 个队友的同题实现学完了吗?
- ✅ 上次失败的原因有记录吗?(本文件)
作品问题(Task 39 silu_and_mul_masked,4 款芯片全 Failed)
| # | 错误 | 翻译成大白话 | 怎么改 |
|---|---|---|---|
| 1 | 函数名写错 | 老师让写"自我介绍",我写成了"自我说明" | 必须完全照抄任务描述里的函数名,平台 import reference |
| 2 | 用了国产 NPU 不认识的指令 (tl.sigmoid) |
用方言写作文,改卷老师是北方人,一个字都看不懂 | 手写 1.0 / (1.0 + tl.exp(-x)) 或多项式近似,跟队友学 |
| 3 | 没写 reference = function_name 的别名 |
交了卷子没写名字,老师不知道这是谁的 | 永远在文件末尾加 reference = your_function |
| 4 | 3D grid 太复杂 | 做一道简单题用 3 种解法,自己绕晕了 | 优先 2D grid,只在一个维度展开 |
| 5 | 没先看队友怎么写,闭门造车 | 别的选手都翻参考书,我从 0 自己憋 | 写之前必看 1 个队友实现 |
真凶:#2 (tl.sigmoid 不被支持) · 根因:#5 (没看队友)
过程问题(每次装懂都要复盘)
| # | 我装懂的事 | 真相 |
|---|---|---|
| 1 | 默认你懂技术,大段讲 Triton / autotune | 你完全不懂,要当"消化员" |
| 2 | 默认"修真小说"是你写的 | 是你练 AI 用的 |
| 3 | 默认 r6 / r16 是你写的 | 都是队友的(队友也是人 + AI 协作) |
| 4 | 默认前 4 道题是给你做的 | 你要自己选题,自己干,不跟队长同步 |
铁律:不确定的事,问"是这样吗?"而不是替你下结论。
协作模式(D243 定型)
| 你 | 我 |
|---|---|
| 找材料(队友代码) | 看代码 |
| 看 flagos.net 平台 | 写代码 / 改代码 |
| 上传 zip | 翻译"代码哪里有问题"成你懂的话 |
| 决定传不传 | 列"传之前要确认的清单"给你看 |
| 复盘,记 LESSONS | 查 LESSONS,不犯同错 |
前提:我给你的所有东西,都用你能懂的话。看不懂就骂我,我重写。
比赛生态(D243 认知)
- 整个 FlagOS 比赛,很多参赛者 = 人类 + AI 助手,不是真人写代码
- 队友的 r6 / r16 代码 = 队友 AI 写的,不是人之之写
- 别人质量高 = 别人 AI 强,不是别人真人强
- 我的工作 = 学别人 AI 的写法 + 搬到我们题上,不原创
已知国产 NPU 套路(从队友代码学的)
with torch.get_device_module(x.device).device(x.device):— 必需 device contextenable_fp_fusion=False— 某些 NPU 不允许 fp fusion- 指针 cast 到
int16/int32防止 NaN 被 fp 转换吃掉 tl.int64显式 cast 防 stride overflow- 手写 erf 近似,不用
tl.erf/tl.sigmoid - 2D grid 比 3D 稳
module.device国产 NPU 必需
下次动手前 checklist
- 任务描述完整读一遍(计算定义 + 接口签名 + 容差)
- 至少 1 个队友参考实现看完
- 把队友写法 + 我打算写的放一起对比
- 写之前把"我准备怎么写"翻译给之之听,得到认可
- 写完本地不传,先给之之看"我会传啥"
- 之之确认后才传
阿念 · D243 23:50