CuTile 自动调优指南
为 CuTile GPU 内核设计、实现并验证低开销的自动调优流程。
未见恶意代码、凭据窃取或隐蔽外传;范围明确为 CuTile 自动调优,并提供 DISABLE_AUTOTUNE 回退和原位 split-buffer。扣分在于未要求用户确认 GPU 编译/基准测试等外部资源消耗,未说明数据流、依赖版本、并发缓存安全或回滚机制,且来源归属虽可由 NVIDIA 元数据和仓库信息支持,但缺少更细的责任与安全说明。
工作流、缓存模式、架构过滤、异常陷阱和示例测试较完整,且示例覆盖 occupancy、matmul 与原位 RoPE。静态审查不能确认 API 与硬件兼容性;错误处理主要依赖 assert,缺少空搜索空间、编译失败、缓存失效和基准异常的诊断反馈,因此不超过静态上限并扣分。
触发词、目标用户场景、决策树、覆盖范围及明确的非目标范围均清楚。扣分在于依赖 CUDA/CuTile/NVIDIA GPU 环境,未给出输入前置条件、版本矩阵、更多架构边界或中文使用支持;大陆网络可达性也未说明。
文档分层、任务路由、参考资料、示例、常见陷阱、许可证和缓存/禁用开关说明较好。扣分在于缺少 metadata.author、版本号、变更日志、维护责任与更新路径;评估报告还指出缺少推荐 Examples 章节及重复内容、深层引用等维护问题。
该技能为自动调优配置提供了可直接套用的 exhaustive_search、缓存、launch、回退和验证流程,边际价值明显。扣分在于静态材料无法证明示例真实可运行或性能收益,基准报告整体 verdict 为 FAIL,且只含一个正向任务,收益和适用范围仍需人工验证。
提交了多个代码示例、固定配置对照、参考实现、测试函数和 benchmark 报告,形成一定可审计链路。扣分在于本次未执行,报告未提供可核验的外部链接或完整复现环境/日志,测试覆盖与第三方交叉佐证有限,因此不超过静态上限。
- 使用前应确认 CUDA、CuTile API、GPU 架构和依赖版本;首次调用会编译并基准测试多个配置,可能消耗显著时间和 GPU 资源。
- 不要把示例测试或 benchmark 报告视为已在当前环境复现;应分别验证正确性、DISABLE_AUTOTUNE 回退、原位输入以及缓存并发行为。
- 补充作者、版本、变更日志、维护/更新路径,并改进编译失败、空配置和硬件不匹配时的可诊断错误信息。
这个 Skill 能做什么,适合哪些场景?
该技能面向使用 CuTile 编写 GPU 内核的开发者,指导为内核加入自动调优。它围绕 `exhaustive_search`、缓存和直接 `ct.launch` 构建一次调优、后续快速执行的模式。内容涵盖占用率搜索、可调 tile 尺寸、`num_ctas`、多架构配置以及常见故障排查。技能只处理自动调优配置,不修改内核算法或内存访问实现。
指导代理分类内核类型,选择搜索维度,生成不超过 30 个候选配置,调用 exhaustive_search,缓存最佳配置和调优后的内核,并通过 ct.launch 直接启动。它还规定如何为原地写入内核使用分离缓冲区、如何用 DISABLE_AUTOTUNE=1 运行正确性测试,以及如何与固定最佳配置进行 A/B 基准比较。
- CuTile 开发者为新的逐元素、归约或 LayerNorm 内核加入占用率自动调优。
- GPU 内核开发者为 matmul、FMHA、FP8 或多 GEMM 内核设计 tile 尺寸、占用率和 `num_ctas` 搜索空间。
- 维护者排查首次运行后数据损坏、搜索空间为空或编译耗时过长的问题。
- 性能工程师优化已有自动调优配置,并清理从未胜出的候选配置。
这个 Skill 有哪些优点和局限?
- 提供从内核分类、搜索空间设计到 A/B 验证的完整流程。
- 明确覆盖原地内核、缓存、架构过滤、编译成本和 `replace_hints` 热路径等常见风险。
- 支持 sm80–sm120 的架构相关配置思路,并要求保留原固定配置作为候选。
- 仅覆盖自动调优配置,不处理数学标志、性能提示、内存访问模式或算法改造。
- 首次调优需要编译和搜索,CuTile 编译成本较高;文档要求最终配置控制在 30 个以内。
- 来源未提供独立测试套件、实际硬件覆盖范围或该具体技能的量化基准报告。
如何安装这个 Skill?
按 NVIDIA/skills 仓库 README 的方式安装技能:npx skills add nvidia/skills --skill tilegym-cutile-autotuning --yes。也可以指定 Codex:npx skills add nvidia/skills --skill tilegym-cutile-autotuning --agent codex。来源未说明独立于该技能集合的其他安装步骤。
如何使用这个 Skill?
安装后,在相关 CuTile 代码任务中明确请求使用该技能,例如:“为这个包含 cuda.tile.tune 的 CuTile 内核设计并实现 autotune,并验证正确性和性能。” 触发信号包括 exhaustive_search、replace_hints、hints_fn、cuda.tile.tune、文件名中的 autotune,以及自动调优内核的正确性或性能问题。
这个 Skill 与同类方案有什么区别?
技能明确将 CuTile 自动调优与 Triton 自动调优比较:Triton 使用 @triton.autotune 和 Config,而 CuTile 使用 exhaustive_search、SimpleNamespace 配置、用户管理的缓存和 ct.launch;CuTile 没有 num_warps 或 num_stages。