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.