TileGym cuTile Kernel Guide
A step-by-step guide for registering, implementing, testing, and benchmarking a new cuTile GPU kernel in TileGym.
The skill scopes edits to operator registration, cuTile implementation, exports, tests, and benchmarks. It shows no credential handling, covert exfiltration, or destructive defaults, and it requires tests and lint. However, it does not require user confirmation before writes or high-impact GPU actions, and it omits data-flow disclosure, permission boundaries, rollback guidance, and dependency-security guidance, so points are deducted.
The six-step sequence is explicit and includes tests, benchmarking, and lint verification, with a skip path for unavailable backends. However, the implementation template uses undefined stream, kernel, and argument values, while prerequisites, dependencies, edge cases, and diagnostic failure handling are thin. Static review cannot establish executability, so the score is capped below 10.
The intended audience and scenario are clear: adding a cuTile GPU operator to TileGym, including registration, implementation, tests, and benchmarking. Positive and negative evaluation tasks also provide some trigger evidence. The skill does not specify supported TileGym/cuTile/PyTorch/Triton versions, GPU architectures, input constraints, non-fit cases, or Chinese-language guidance, and gives no mainland-China network compatibility information, so points are deducted.
SKILL.md provides metadata, staged organization, file paths, templates, and verification commands. The skill card adds CC-BY-4.0 and Apache-2.0 licensing, ownership, version information, and evaluation details; repository workflows provide maintenance and publication signals. The benchmark report identifies missing Examples, Purpose, prerequisites, and limitations, and there is no clear skill-specific changelog or update path, so points are deducted.
The goal and six required outputs are clear, with useful file locations, templates, test patterns, and benchmark requirements. The templates contain undefined symbols and likely require adaptation to the actual repository interfaces; no directly usable representative output or third-party execution evidence is supplied. Under static calibration, the score cannot exceed 7.
The files provide concrete paths, references to existing implementations, verification commands, and a pinned-revision evaluation report with task definitions plus real CI publication and DCO workflows. The evaluation results are primarily author-provided, with no committed test suite covering this skill's key path or independently reproducible execution logs. Static calibration therefore caps this at 5.
- Do not copy the cuTile implementation template verbatim: stream, kernel, arguments, and backend details are undefined and must be checked against the target TileGym version and existing operators.
- Before execution, confirm GPU, CUDA/cuTile, PyTorch, and Triton versions and dependency sources; obtain user confirmation for file writes and commands, and preserve version-controlled changes for rollback.
- Input shapes, dtypes, devices, architecture limits, and failure handling are not specified; prerequisites, known limitations, examples, and troubleshooting should be added.
What does this skill do, and when should you use it?
This NVIDIA skill guides the end-to-end addition of a cuTile operator or GPU kernel to TileGym. It covers the dispatch interface, cuTile backend implementation, package exports, tests, benchmarking, and verification. The document supplies file paths, code templates, testing patterns, and benchmark requirements. It is intended for developers already working with TileGym, PyTorch, and cuTile; it is an implementation guide rather than a ready-made kernel.
It directs an agent to add a dispatch entry in src/tilegym/ops/ops.py, implement a cuTile kernel under src/tilegym/ops/cutile/, register and export it through __init__.py, create PyTorch-reference tests under tests/ops/, and add a Triton benchmark under tests/benchmark/ comparing cuTile and PyTorch backends. The workflow also specifies pytest, an optional benchmark command, and pre-commit linting.
- A TileGym developer is adding a new operator backed by cuTile and needs the registration, implementation, and export sequence.
- A GPU-kernel developer is adding shape- and dtype-parameterized correctness tests for a new cuTile operator.
- A performance engineer is creating a Triton benchmark to compare a cuTile implementation with the PyTorch backend.
- A maintainer is diagnosing why a cuTile implementation is not loaded and needs to inspect cutile/__init__.py imports and __all__.
What are this skill's strengths and limitations?
- Covers the complete path from dispatch registration through testing and performance benchmarking.
- Highlights the critical __init__.py loading step that can otherwise leave a cuTile implementation inactive.
- Provides concrete patterns for backend parameterization, PyTorch reference tests, and Triton benchmark reports.
- The repository README identifies the catalog as NVIDIA-verified and documents signatures and evaluation artifacts.
- It provides workflow guidance and templates, not a complete implementation for a specific operator.
- It assumes the TileGym source layout and an environment with PyTorch, cuTile, a CUDA GPU, and Triton.
- The supplied material does not specify software versions, GPU support, or a tested platform matrix.
- Benchmark execution is marked optional, and no actual performance results are provided.
How do you install this skill?
Install the specific skill with the command documented in the repository README: npx skills add nvidia/skills --skill tilegym-adding-cutile-kernel --yes. The README does not document a client-independent manual installation path; after installation, the skill becomes available when the agent loads skills and encounters a relevant task.
How do you use this skill?
After installation, ask for a task such as “Add a new cuTile operator to TileGym, including tests and a benchmark.” The skill specifies a six-step ordered workflow covering ops.py, the cuTile backend, __init__.py, tests, benchmarking, and verification. The operator’s mathematical behavior, parameters, and launch configuration must be supplied by the task.