论证期 · 团队补课
类 CUDA · 类 Triton
高端芯片预期:算子、众核编译、框架。协作方推类 CUDA;我方可在其上建类 Triton。先分清层级,再天天练。
1. 两层,不是两门平行课
框架(PyTorch / 自研)
↓
类 Triton:算子 DSL + 编译(tile / 融合 / autotune) ← 我方构建重点
↓ 生成或调用
类 CUDA:编程模型 + Runtime + 工具链 ← 协作主攻,可选参与
↓
众核硬件 ISA
类 CUDA = 怎么在众核上跑线程与访存。
类 Triton = 怎么用更高层 DSL 写出可自动优化的算子。
没有相对稳定的 Runtime,类 Triton 无处降落。
类 Triton = 怎么用更高层 DSL 写出可自动优化的算子。
没有相对稳定的 Runtime,类 Triton 无处降落。
2. 任务 ↔ 练什么
| 任务 | 知识 | 现在用什么练 |
|---|---|---|
| 算子开发 | tiling、融合、精度、测速 | Triton 04b/04c + 官方 Tutorial |
| 众核编译 | 并行映射、存储、同步、IR→码 | 读 compile 日志;CUDA/PTX 概念 |
| 框架构建 | 图 IR、Backend、契约、Session | LxCC / bid 经验迁移 |
| 参与类 CUDA | 线程层次、launch、Runtime API | CUDA Guide 入门 + 一个 .cu |
| 建类 Triton | DSL、降到 Runtime、autotune | triton_lab 公开作品 |
3. 类 CUDA 最小口述
- 主机编排 / 设备执行
- Thread → Warp → Block → Grid(名字可变,层次要留)
- 全局 / 共享 / 寄存器
- Kernel launch + 同步
- H2D/D2H;工具链:编译 → 装载 → 驱动
材料:CUDA C++ Programming Guide(先读前几章)。
4. 类 Triton 最小口述
kernel[grid](args):grid 是启动配置,不是签名参数program_id= tile id;BLOCK + mask 处理尾块- 融合 = 少一次全局写回(对照 Inductor 的 fused_add_relu)
- 底下仍要有 Runtime 做分配与 launch
材料:compile 页 · Triton Tutorials · 口卡③
5. 框架窄腰(论证可用)
优先冻结:IR + Backend 接口 + Runtime ABI,先 1~2 条算子竖切,再谈完整训练框架。边端已有经验:进图 → Pass → 边契约 → golden。
6. 叙事一句
生态分两层:底层类 CUDA(协作推进,我方可参与子集);上层类 Triton(算子生产力)。我方并做算子、编译衔接与框架窄腰;近期用 GPU 上 CUDA/Triton 代理练兵,接口冻结后垂直迁移。
7. 知识层(L0~L5)
- L0 异构心智:主机/设备、算死搬死、存储层次
- L1 类 CUDA:线程层次、launch、Runtime
- L2 类 Triton:tile DSL、融合、降到 Runtime
- L3 众核编译:映射、同步、IR→码
- L4 框架窄腰:图、Backend、ABI
- L5 算子工程:库、注册、CI/golden
8. 可观看(P0 先这几条)
- Triton: B 站「从入门到大师」 必看第 1–6 集(向量加→Softmax→Matmul)
- Triton: GPU MODE Lecture 14 + notebook
- CUDA: 编程基础入门系列(线程模型+内存)· 周斌 CUDA 教程合集
- MLIR: 概述 2~3 集(只动机,不追剧)
精读已上站:Triton 精读导览(合集 / L14 / L29 / 侧翼)。完整选集与「看完立刻做」见 ob:资料清单_可观看与文档_类CUDA_Triton.md;媒体在本地 gpu_triton/。
9. 文档 + GitHub
- CUDA Programming Guide(Part1)· Best Practices
- Triton 教程(中) · EN · 源码
- torch.compiler · 本站 compile
- FlagTree · FlagGems · TileLang
- rocm-examples · HIP SAXPY
学法:视频绑定官方 tutorial → triton_lab 改旋钮出表 → 生态仓只读 README 画层级图。