用途:本技能提供 cuTile Python DSL(cutile-dsl)的内核实现模式、CtKernel 运行时封装、适用性门槛与 cuTile 特有陷阱,适用于创建或修改 cuTile 内核。使用前需先加载 /design-kernel 获取共享命名、版本、KernelPlan 结构、组合模式、克隆流程与设计输出约定。
主要能力:当优化仍可通过 tile 尺寸与张量布局、ct.bid()/ct.num_blocks() 的 CTA 重映射与工作划分、num_ctas 与 occupancy 提示、latency/allow_tma 等编译器提示、KernelPipeline/ConcurrentKernels 多阶段组合表达时,应继续使用 cuTile。CtKernel 以 grid_fn 与 args_fn 包装内核,字段包括 kernel_fn、grid_fn、args_fn、input_tensors、output_tensors、tiling、autotune_configs、algorithmic_flops_bytes_fn。自动调优使用 cuda.tile_experimental 的 autotune_launch(),_apply_hints() 在调优后重新应用提示;compile() 通过 compile_tile() 生成 .bytecode,可选经 cuda-tile-translate 转为 .mlir。常量类型有 ConstInt、ConstBool、ConstFloat、INV_LOG_2。
使用方式:内核布局为 src/mla_var3/kernel/cutile/<layer>/<design>/<design>[_vN]/,模块文件为 <design>[_vN].py,@ct.kernel 函数名必须与模块文件名一致。Tiling 数据类包含 tile 维度与可选提示,并实现 validate()。
限制:cuTile 不暴露线程、warp、warpgroup 身份,不允许块内显式同步或通信;num_ctas 只是提示,不提供集群编程模型。若内核被限制为每 SM 一个 CTA,且所需修复是显式 warpgroup 或 barrier 调度,应改用 CuTe DSL(/design-cute-dsl-kernel)。寄存器上限 255/线程,建议低于 128;共享内存默认 48KB/块,可选 99KB,每 SM 共 100KB。切勿臆造 cuTile API,需用 /cutile-dsl-ref 或官方文档核实。