用途:本技能提供向 TileGym 添加新算子(如 my_op)的 cuTile 后端实现端到端流程,要求先建 TodoWrite 清单,按序执行并逐步标记完成,不可跳过或合并步骤。
主要能力与步骤:
- 在 src/tilegym/ops/ops.py 用 @dispatch("my_op") 注册分发接口,函数体仅 raise NotImplementedError,包含 **kwargs;
- 在 src/tilegym/ops/cutile/my_op.py 实现 cuTile 后端,使用 @ct.kernel 与 @register_impl("my_op", backend="cutile");
- 在 src/tilegym/ops/cutile/init.py 的 if is_backend_available("cutile") 块内按字母序 from . import my_op,并在函数导入区与 all 中添加"my_op";
- 在 tests/ops/test_my_op.py 添加测试,必须从 tilegym.ops 导入,使用 _backends=["cutile"]、set_backend 与 setUp 模式;
- 在 tests/benchmark/bench_my_op.py 添加基准,通过 tilegym.ops.my_op(backend=backend) 调用,定义 ALL_BACKENDS、get_supported_backends、register_impl 与 create_benchmark_config,plot_name 需带 -TFLOPS 或 -GBps 后缀;
- 验证:pytest tests/ops/test_my_op.py -v、python tests/benchmark/bench_my_op.py、pre-commit run -a。
限制与常见错误:必须按规则执行,不适用步骤也要标记完成并说明,不得静默跳过;缺 init.py 注册会导致后端未加载;测试需包含 backend 参数化与可用性检查,不可直接从 cutile 模块导入。资料未提供具体收费、平台支持范围或性能承诺。