Skip to content

Latest commit

 

History

History
96 lines (73 loc) · 4.79 KB

File metadata and controls

96 lines (73 loc) · 4.79 KB

中文 | English ⚠️ [WIP] This section is under development.

Kernel Skills 体系框架

基于 HF Custom CUDA Skills、PyTorch KernelAgent、AutoKernel,并结合 CUDA-Agent、GEAK、Astra、KernelSkill、CUDAMaster 等近两年代表性工作抽象出的 kernel skills 体系框架。

核心理念:把资深 kernel 工程师的优化套路,拆成一组可组合的 skills,塞进多阶段/多智能体闭环里,由 LLM + profiling 自动驱动 kernel 的生成和优化。

三层抽象

1. 系统/编排层(Orchestration Skills)

从 PyTorch 程序到可优化的 kernel 子图,调度多个 agent、多策略和多 kernel。

最小闭环流程:

  1. Profiling — 采集 NCU/ROCm 指标
  2. Bottleneck Diagnosis — 诊断 memory/compute/latency bound
  3. CodeGen / Patch — 生成或改写 kernel
  4. Verification — 正确性/稳定性/determinism 校验
  5. Benchmark — 输出 latency / TFLOPS / GBps
  6. Controller — 根据收益决策 keep / revert / next round

2. 优化技法层(Optimization Skills)

基于 AutoKernel 6 层 Playbook 的技能树:

Tier 优化方向 典型技能
Tier 1 Block / Tile / Warp 配置 Tile 尺寸扫描、warp mapping、num_warps & num_stages 协调、Persistent/Stream-K/Split-K
Tier 2 内存访问与层次结构 Coalescing、software pipelining、shared memory padding/swizzle、L2 cache-aware、register spill 管理
Tier 3 计算优化 Mixed precision + FP32 accumulator、fused epilogue、inner loop 瘦身、fast math intrinsics
Tier 4 高级调度与并行 Split-K/Stream-K、persistent kernel、warp specialization、多 GPU 通信融合
Tier 5 架构特化 Hopper (WGMMA/TMA/cluster)、Ampere (cp.async/TF32/2:4 sparse)、AMD (LDS/wavefront 差异)
Tier 6 Kernel-Specific Tricks 与算子模式层合并,见下

3. 算子模式层(Kernel Pattern Skills)

Kernel 类型 关键技巧
GEMM Swizzled shared layout、register tiling、epilogue fusion、tensor core pipeline
Softmax Warp shuffle reduce、multi-row per TB、online log-sum-exp、fast exp/div
LayerNorm/RMSNorm Welford 在线均值方差、warp shuffle 归约、rsqrtf、float4/half2 向量化
FlashAttention Q/K/V tile 双缓冲、online softmax、causal mask 早终止、两次 GEMM + TC pipeline
Fused MLP (SwiGLU) 两个 GEMM + gate + elementwise 融合
Cross-Entropy Online log-sum-exp + target lookup 融合、warp-level reduce
Rotary Embedding __sincosf + 常量表缓存、half2 读写
MoE / Grouped GEMM Routing align & sort、persistent cache-aware grouped GEMM、expert compute + 通信融合

验证与评估层

  1. 多阶段正确性验证: reference.py + kernel.py + input generator,支持 5-stage harness
  2. 性能度量: CUDA events / Triton timer → latency + TFLOPS/GBps (JSON 输出)
  3. Roofline / Hardware-aware 分析: memory-bound / compute-bound / latency-bound 判定 + SOL
  4. 基准套件集成: KernelBench / MultiKernelBench / MSKernelBench (fast_1 / fast_2 / fast_p)

架构选择:Skills-Only vs Multi-Agent

默认 skills-only,按需升级 multi-agent:

  • Skills-only: Cursor / Claude Code / CLI + 本地脚本,适合单 kernel 优化
  • Multi-agent 触发条件: 搜索空间 > 10³ 组合、同时 > 5 kernel、需要并发角色、团队有平台化运维能力

Multi-agent 不替代 skills,它编排 skills。Skill 接口与 artifact 协议应保持一致,以便从串行平滑升级到并行编排。

建议目录结构

skills/
  system/
    profiling.md
    bottleneck_diagnosis.md
    verification_5stage.md
  optimization/
    tier1_block_tiling.md
    tier2_memory_access.md
    tier3_compute_fusion.md
    tier4_advanced_scheduling.md
    tier5_arch_h100.md / tier5_arch_amd_rocm.md
    tier6_kernel_specific_tricks.md
  kernels/
    gemm/ attention/ norm/ softmax/ moe/ reduce/
  benchmarks/
    kernelbench_integration.md
    roofline_analysis.md

每个 .md 前半放工程准则/图示/反例,后半放面向 LLM 的 Agent Instructions。

Reference