What problem does it solve?
CuTile GPU kernels ship with hardcoded launch configurations that leave performance on the table, and manually tuning tile sizes, occupancy, and num_ctas across GPU architectures (sm80 through sm120) is error-prone and slow. This Skill guides an agent through adding correct, cached autotuning to CuTile kernels while avoiding the pitfalls that cause data corruption, recompilation slowdowns, and compilation timeouts.
Core Features & Use Cases
- Tune-Once/Cache/Launch Pattern: Implements exhaustive_search from cuda.tile.tune with module-level caching so tuning runs once per shape and subsequent launches have zero overhead.
- Kernel-Type Templates: Provides copy-paste autotune templates for 9 kernel types including elementwise, in-place (split-buffer), matmul, persistent GEMM, FMHA, FP8, grouped GEMM, varlen attention, and dual-GEMM fusion.
- Per-Architecture Configs: Supplies validated search spaces for sm80, sm90, sm100, sm103, and sm120 with hardware constraints on tile sizes, num_ctas, and TMA usage.
- Pitfall Checklist: Documents 7 common failures such as in-place data corruption, replace_hints recompilation on hot paths, and empty search spaces, with fixes.
- Use Case: A developer porting a Triton RMSNorm kernel to CuTile asks the agent to add autotuning; the agent classifies it as occupancy-only, applies the 4-config template, caches the tuned kernel, and validates with an A/B benchmark against the fixed-config baseline.
Quick Start
Ask your agent to add autotuning to a specific CuTile kernel, for example: add CuTile autotuning to my matmul kernel using exhaustive_search with per-architecture configs.