What problem does it solve?
Porting cuTile Python GPU kernels (@ct.kernel) to Julia's cuTile.jl involves many subtle differences — 0-indexed vs 1-indexed indexing, row-major vs column-major memory layout, broadcasting rules, type system mapping, and launch API changes — that silently produce wrong results or compiler errors if missed.
Core Features & Use Cases
- Guided Conversion Workflow: A phased workflow covering pre-flight analysis, kernel signature and body conversion, test writing, static validation, and test execution.
- API Mapping & Critical Rules: Bidirectional Python↔Julia API tables plus 17 critical rules covering indexing, broadcasting, reductions, memory layout, and ct.load order remapping.
- Static Validation Script: A bundled Python validator (scripts/validate_cutile_jl.py) that flags anti-patterns like ct.full(), ct.bid(0), .astype(), and missing return statements.
- Use Case: An engineer porting a softmax kernel from cuTile Python to cuTile.jl follows the workflow, applies the API mapping, validates the .jl file, and runs Julia-native tests against NNlib.jl references.
Quick Start
Ask your agent to convert a specific cuTile Python kernel file to a cuTile.jl Julia kernel and validate it with the bundled validator script.