cutile-autotuning

Implement and debug CuTile kernel autotuning with exhaustive_search and cached launches.

Updated May 23, 2026
One-click install
npx skills add https://github.com/yo-steven/skills-exploration-20260522 --skill cutile-autotuning
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cutile-autotuning
Source: https://github.com/yo-steven/skills-exploration-20260522/tree/main/skills/TileGym/cutile-autotuning
Command: npx skills add https://github.com/yo-steven/skills-exploration-20260522 --skill cutile-autotuning

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve?

This Skill prevents slow or incorrect performance tuning by giving a structured, architecture-aware workflow for adding CuTile autotuning to kernels.

Core Features & Use Cases

  • Tune-once/cache/launch pattern: Uses exhaustive_search to find the best config once, then reuses a cached tuned kernel for fast repeated launches.
  • Search space design for CuTile: Builds a small, precise config set (≤ 30) using occupancy-only tuning for memory/bandwidth-bound kernels or full tile searches for compute-bound kernels.
  • Safety for in-place kernels: Applies the split-buffer strategy during exhaustive_search to avoid data corruption across trial runs.
  • DISABLE_AUTOTUNE fallback: Supports CI and profiling determinism by bypassing tuning when DISABLE_AUTOTUNE=1.
  • Common pitfall prevention: Includes guardrails for empty search spaces, compilation timeouts, and avoiding replace_hints on the hot path.

Quick Start

Use it to add autotuning to a new CuTile kernel by first classifying it with the decision tree, then generating the smallest relevant search space, then implementing the tune-once/cache/launch wrapper with a DISABLE_AUTOTUNE-safe fallback.

Frequently Asked Questions about cutile-autotuning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add autotuning to a CuTile kernel safely?

To add autotuning to a CuTile kernel safely, classify it via a decision tree to build a ≤30-config search space, then implement a tune-once/cache/launch wrapper with a DISABLE_AUTOTUNE fallback. Apply split-buffer safeguards for in-place kernels to prevent data corruption.

What is the exhaustive_search workflow for GPU kernel optimization?

The exhaustive_search workflow for GPU kernel optimization runs trial configurations once to find the best performance, then caches that tuned kernel for fast repeated launches. This tune-once/cache/launch pattern avoids slow or incorrect performance tuning overhead during execution.

How do I prevent data corruption when autotuning in-place kernels?

To prevent data corruption when autotuning in-place kernels, apply the split-buffer strategy during exhaustive_search. This safeguard isolates trial runs to avoid overwriting input data across multiple configuration tests.

When should I use occupancy-only tuning versus full tile searches for GPU performance?

Use occupancy-only tuning for memory or bandwidth-bound kernels, and use full tile searches for compute-bound kernels. This architecture-aware approach ensures the search space targets the correct performance bottleneck for your specific workload.

Can I bypass autotuning for CI and profiling determinism?

Yes, you can bypass autotuning for CI and profiling determinism by setting DISABLE_AUTOTUNE=1. This fallback skips the exhaustive_search workflow, ensuring deterministic kernel execution by avoiding dynamic configuration selection.

Why does CuTile autotuning fail with empty search spaces or compilation timeouts?

CuTile autotuning fails with empty search spaces or compilation timeouts due to unoptimized configuration sets. Guardrails prevent these pitfalls by ensuring a ≤30-config search space and avoiding replace_hints on the hot path to maintain compilation stability.