triton-skill
SKILL.md
Triton & Gluon Kernel Development
Source Code Locations
Triton 源码位于此 skill 安装目录下的 repos/triton/。
实际路径取决于所用工具:
- Cursor:
~/.cursor/skills/triton-skill/repos/triton/ - Claude Code:
~/.claude/skills/triton-skill/repos/triton/ - Codex:
~/.agents/skills/triton-skill/repos/triton/
TRITON_REPO: 下文示例用 ~/.cursor/skills/triton-skill/repos/triton/ 作占位符,替换为实际路径。
如果该路径不存在,在项目目录下运行 bash update-repos.sh triton。
Triton Tutorials (入门到进阶)
TRITON_REPO/python/tutorials/
├── 01-vector-add.py # Triton 基础: @triton.jit, program_id, load/store
├── 02-fused-softmax.py # 内核融合, reduction, tl.max/tl.sum/tl.exp
├── 03-matrix-multiplication.py # Block matmul, L2 cache, @triton.autotune
├── 04-low-memory-dropout.py # 并行 PRNG, tl.rand, seed-based dropout
├── 05-layer-norm.py # Backward pass, atomic ops, tl.atomic_cas
├── 06-fused-attention.py # Flash Attention v2, causal mask, FP8, warp spec
├── 07-extern-functions.py # libdevice 外部函数调用
├── 08-grouped-gemm.py # Group GEMM, TMA, tensor descriptors
├── 09-persistent-matmul.py # 持久化内核, TMA, warp specialization, FP8
├── 10-block-scaled-matmul.py # FP4/FP8, MXFP4, tl.dot_scaled
└── 11-programmatic-dependent-launch.py # PDL, gdc_wait, gdc_launch_dependents
Gluon Tutorials (底层 GPU 编程)
TRITON_REPO/python/tutorials/gluon/
├── 01-intro.py # Gluon vs Triton, tile-based SPMD, @gluon.jit
├── 02-layouts.py # BlockedLayout, size_per_thread, warps_per_cta
├── 03-async-copy.py # cp.async, 流水线, shared memory
├── 04-tma.py # Tensor Memory Accelerator, tensor desc, mbarrier
├── 05-wgmma.py # Warp-Group MMA, Hopper Tensor Core, async MMA
├── 06-tcgen05.py # Blackwell Tensor Core, Tensor Memory, tcgen05_mma
├── 07-persistence.py # 持久化内核, work assignment, 多级流水线
├── 08-warp-specialization.py # Warp 特化, 任务重叠
├── 09-tma-gather-scatter.py # Native TMA Gather/Scatter (Blackwell)
├── 10-tcgen05-copy.py # tcgen05_copy, shared→tensor memory
├── 11-tcgen05-mma-scaled.py # tcgen05_mma_scaled, nvfp4/mxfp4/mxfp8
└── 12-cluster-launch-control.py # CLC, 动态 work distribution
Gluon Examples (完整实现)
TRITON_REPO/python/examples/gluon/
└── 01-attention-forward.py # Flash Attention forward (Blackwell)
# 完整的 producer/consumer, TMA, tcgen05_mma
Triton Kernels (生产级参考实现)
TRITON_REPO/python/triton_kernels/triton_kernels/
├── matmul.py # 矩阵乘法 API (融合激活/MoE/ragged)
├── matmul_details/
│ ├── _matmul.py # Dense GEMM kernel (TMA, mxfp4/8)
│ ├── _p_matmul.py # Persistent GEMM kernel (ragged TMA)
│ └── _common.py # 偏移计算, XCD swizzle
├── reduce.py # Reduction kernel (mask/scale/mxfp/flexpoint)
├── topk.py # Top-K selection (forward/backward, bitmatrix)
├── swiglu.py # SwiGLU activation kernel
├── compaction.py # Masked compaction kernel
├── numerics.py # FP8/MXFP 数值配置
├── numerics_details/
│ ├── mxfp.py # MXFP 量化/反量化
│ └── flexpoint.py # Flexpoint 缩放
├── tensor.py # Tensor/Layout 抽象 (TMA descriptors)
├── tensor_details/
│ └── layout_details/ # Blackwell/Hopper/CDNA4 MX 布局
├── distributed.py # 分布式 MoE, SymmetricMemory
├── testing.py # 测试工具 (assert_close, compute_sanitizer)
└── roofline.py # Roofline 性能分析
Triton 语言源码
TRITON_REPO/python/triton/language/ # tl.* 操作的定义和语义
TRITON_REPO/python/triton/experimental/gluon/ # gluon.* 操作的定义
TRITON_REPO/python/triton/runtime/ # JIT 编译, 缓存, 解释器
TRITON_REPO/python/triton/compiler/ # 代码生成
TRITON_REPO/python/triton/tools/ # Tensor descriptor 工具
C++ 编译器 (IR 定义和 Passes)
TRITON_REPO/include/triton/
├── Dialect/
│ ├── Triton/ # Triton IR dialect 定义 (.td, .h)
│ ├── TritonGPU/ # TritonGPU dialect (layouts, encodings)
│ ├── TritonNvidiaGPU/ # NVIDIA 特定 ops (wgmma, tma, tcgen05)
│ └── Gluon/ # Gluon dialect
├── Conversion/ # IR lowering passes (TritonGPU -> LLVM)
├── Analysis/ # Alias, Allocation, AxisInfo, Membar
└── Tools/ # 工具类
TRITON_REPO/lib/
├── Dialect/
│ ├── Triton/ # Triton ops 实现, canonicalize
│ ├── TritonGPU/ # GPU layout 优化 passes
│ ├── TritonNvidiaGPU/ # NVIDIA lowering
│ └── Gluon/ # Gluon ops 实现
├── Conversion/ # Lowering pass 实现 (TritonGPU -> LLVM IR)
├── Analysis/ # 分析 pass 实现
└── Target/ # 代码生成目标
Search Strategy
用 Grep 工具搜索,不要整文件加载。
先确定 TRITON_REPO 的实际路径,然后用绝对路径搜索。
Triton API 用法
# 设置路径变量(替换为实际路径)
TRITON_REPO="$HOME/.cursor/skills/triton-skill/repos/triton"
# 查找 tl.dot 的使用方式
rg "tl\.dot" $TRITON_REPO/python/tutorials/
# 查找 autotune 配置示例
rg "@triton.autotune" $TRITON_REPO/python/tutorials/
# 查找 tensor descriptor 创建
rg "TensorDescriptor" $TRITON_REPO/python/tutorials/
# 查找特定 tl 操作的定义
rg "def (load|store|dot)" $TRITON_REPO/python/triton/language/
Gluon API 用法
# 查找 gluon.jit 使用
rg "@gluon.jit" $TRITON_REPO/python/tutorials/gluon/
# 查找 wgmma 用法
rg "wgmma" $TRITON_REPO/python/tutorials/gluon/05-wgmma.py
# 查找 tcgen05 用法 (Blackwell)
rg "tcgen05" $TRITON_REPO/python/tutorials/gluon/
# 查找 TMA 异步拷贝模式
rg "async_copy" $TRITON_REPO/python/tutorials/gluon/
# 查找 mbarrier 使用
rg "mbarrier" $TRITON_REPO/python/tutorials/gluon/
编译器 IR 和 Passes
# 查找 Triton IR op 定义 (TableGen)
rg "def.*Op" $TRITON_REPO/include/triton/Dialect/Triton/IR/
# 查找 TritonGPU layout encoding
rg "Encoding" $TRITON_REPO/include/triton/Dialect/TritonGPU/IR/
# 查找 NVIDIA 特定 ops (wgmma, tma)
rg "wgmma\|tma\|tcgen05" $TRITON_REPO/include/triton/Dialect/TritonNvidiaGPU/
# 查找 lowering pass 实现
rg "Pattern\|Rewrite" $TRITON_REPO/lib/Conversion/TritonGPUToLLVM/
# 查找 Gluon dialect ops
rg "def.*Op" $TRITON_REPO/include/triton/Dialect/Gluon/
# 查找特定 pass (如 coalesce, pipeline, prefetch)
rg "coalesce\|pipeline\|prefetch" $TRITON_REPO/lib/Dialect/TritonGPU/Transforms/
生产内核参考
# 查找 matmul 内核的 TMA 使用
rg "tma" $TRITON_REPO/python/triton_kernels/triton_kernels/matmul_details/
# 查找 MXFP 量化实现
rg "mxfp" $TRITON_REPO/python/triton_kernels/triton_kernels/numerics_details/
# 查找 persistent kernel 模式
rg "persistent" $TRITON_REPO/python/triton_kernels/triton_kernels/matmul_details/_p_matmul.py
# 查找 layout swizzle
rg "swizzle" $TRITON_REPO/python/triton_kernels/triton_kernels/tensor_details/layout_details/
When to Use Each Source
| Need | Source | Path |
|---|---|---|
| Triton 基础语法和模式 | Tutorials 01-05 | python/tutorials/01-*.py ~ 05-*.py |
| 矩阵乘法优化 | Tutorial 03, 09, 10 | python/tutorials/03-*.py, 09-*.py, 10-*.py |
| Attention 内核 | Tutorial 06, Gluon example | python/tutorials/06-*.py, python/examples/gluon/ |
| Gluon 入门 | Gluon tutorials 01-02 | python/tutorials/gluon/01-intro.py, 02-layouts.py |
| TMA 异步拷贝 | Gluon tutorials 03-04 | python/tutorials/gluon/03-*.py, 04-*.py |
| WGMMA (Hopper) | Gluon tutorial 05 | python/tutorials/gluon/05-wgmma.py |
| tcgen05 (Blackwell) | Gluon tutorials 06, 10, 11 | python/tutorials/gluon/06-*.py, 10-*.py, 11-*.py |
| 持久化内核模式 | Gluon tutorial 07 | python/tutorials/gluon/07-persistence.py |
| Warp 特化模式 | Gluon tutorial 08 | python/tutorials/gluon/08-warp-specialization.py |
| FP4/FP8/MXFP 量化 | Tutorial 10, triton_kernels | python/tutorials/10-*.py, triton_kernels/numerics_details/ |
| 生产级 GEMM | triton_kernels matmul | triton_kernels/triton_kernels/matmul_details/ |
| MoE / Ragged tensor | triton_kernels | triton_kernels/triton_kernels/distributed.py, tensor_details/ragged_tensor.py |
| Top-K / SwiGLU 内核 | triton_kernels | triton_kernels/triton_kernels/topk.py, swiglu.py |
| Roofline 性能分析 | triton_kernels | triton_kernels/triton_kernels/roofline.py |
| tl.* 操作语义/签名 | Language source | python/triton/language/ |
| 布局和 swizzle | triton_kernels layouts | triton_kernels/triton_kernels/tensor_details/layout_details/ |
| Triton IR op 定义 | include | include/triton/Dialect/Triton/IR/ |
| GPU layout encoding | include | include/triton/Dialect/TritonGPU/IR/ |
| NVIDIA ops (wgmma/tma) | include | include/triton/Dialect/TritonNvidiaGPU/ |
| Gluon dialect 定义 | include | include/triton/Dialect/Gluon/ |
| 编译 pass 实现 | lib | lib/Dialect/TritonGPU/Transforms/ |
| IR lowering (GPU->LLVM) | lib | lib/Conversion/TritonGPUToLLVM/ |
Triton Kernel 编写模式
基本模式
import triton
import triton.language as tl
@triton.jit
def kernel(x_ptr, y_ptr, n_elements, BLOCK_SIZE: tl.constexpr):
pid = tl.program_id(0)
offsets = pid * BLOCK_SIZE + tl.arange(0, BLOCK_SIZE)
mask = offsets < n_elements
x = tl.load(x_ptr + offsets, mask=mask)
y = x * 2 # 计算
tl.store(y_ptr + offsets, y, mask=mask)
# 启动
grid = lambda meta: (triton.cdiv(n, meta['BLOCK_SIZE']),)
kernel[grid](x, y, n, BLOCK_SIZE=1024)
Autotune 模式
@triton.autotune(
configs=[
triton.Config({'BLOCK_M': 128, 'BLOCK_N': 256, 'BLOCK_K': 64}, num_stages=3, num_warps=8),
triton.Config({'BLOCK_M': 64, 'BLOCK_N': 256, 'BLOCK_K': 32}, num_stages=4, num_warps=4),
],
key=['M', 'N', 'K'],
)
@triton.jit
def matmul_kernel(a_ptr, b_ptr, c_ptr, M, N, K, ...):
...
参考 python/tutorials/03-matrix-multiplication.py 获取完整 autotune matmul 示例。
Gluon 基本模式
from triton.experimental import gluon
@gluon.jit
def kernel(x: gluon.tensor[M, N, tl.float16]):
# 直接使用 tile 操作
y = x + 1.0
return y
参考 python/tutorials/gluon/01-intro.py 获取 Gluon 入门示例。
常见问题排查
| 问题 | 可能原因 | 查找参考 |
|---|---|---|
| tl.dot 结果错误 | 输入类型不匹配 (需要 float16/bfloat16) | rg "tl.dot" tutorials/03-*.py |
| CUDA OOM | BLOCK_SIZE 过大, num_stages 过多 | rg "num_stages" tutorials/09-*.py |
| autotune 无效 | key 参数未对齐实际变化维度 | rg "key=" tutorials/03-*.py |
| TMA descriptor 错误 | tensor 不连续或维度不匹配 | rg "TensorDescriptor" tutorials/gluon/04-*.py |
| wgmma 精度问题 | 需要 float32 累加器 | rg "accumulator" tutorials/gluon/05-wgmma.py |
| 性能低 | 未用 persistent kernel 或 warp spec | tutorials/gluon/07-persistence.py, 08-warp-specialization.py |
Triton 编译和调试
# 查看生成的 PTX
TRITON_PRINT_AUTOTUNING=1 python your_script.py
# 启用 IR dump
MLIR_ENABLE_DUMP=1 python your_script.py
# 使用 Triton 的 compute-sanitizer
from triton_kernels.testing import compute_sanitizer
# 参考: python/triton_kernels/triton_kernels/testing.py
# 性能分析
from triton_kernels.roofline import compute_roofline
# 参考: python/triton_kernels/triton_kernels/roofline.py
更新 Triton 源码
# 在 cursor-gpu-skills 项目目录下
bash update-repos.sh triton
Additional References
- Triton 官方文档: https://triton-lang.org
- Triton Language API:
TRITON_REPO/python/triton/language/ - Gluon Experimental API:
TRITON_REPO/python/triton/experimental/gluon/
Weekly Installs
12
Repository
slowlyc/cursor-…u-skillsGitHub Stars
47
First Seen
13 days ago
Security Audits
Installed on
gemini-cli11
github-copilot11
codex11
kimi-cli11
amp11
cursor11