Loading...
Loading...
Compare original and translation side by side
/design-kernel/cute-dsl-ref/design-kernel/cute-dsl-refcute-dslcute-dsloccupancynum_ctasallow_tmaoccupancynum_ctasallow_tmacute-dslcute_pythonsrc/mla_var3/kernel/cute_python/<layer>/<design>/<design>[_vN]/<design>[_vN].pyCuteKernelcute-dslcute_pythonsrc/mla_var3/kernel/cute_python/<layer>/<design>/<design>[_vN]/<design>[_vN].pyCuteKernelsrc/mla_var3/runtime/cute_kernel.py@cute.jit@cute.kernelCuteKernelfrom mla_var3.runtime.cute_kernel import CuteKernelsrc/mla_var3/runtime/cute_kernel.py@cute.jit@cute.kernelCuteKernelfrom mla_var3.runtime.cute_kernel import CuteKernelreturn CuteKernel(
kernel_fn=device_kernel, # The @cute.kernel function (for naming)
launch_fn=launch_fn, # Closure: (tiling) -> launches kernel
input_tensors=list(inputs),
output_tensors=[output],
tiling=self.tiling,
autotune_configs=self._autotune_configs(),
algorithmic_flops_bytes_fn=self._algorithmic_flops_bytes,
)undefinedreturn CuteKernel(
kernel_fn=device_kernel, # @cute.kernel函数(用于命名)
launch_fn=launch_fn, # 闭包:(tiling) -> 启动内核
input_tensors=list(inputs),
output_tensors=[output],
tiling=self.tiling,
autotune_configs=self._autotune_configs(),
algorithmic_flops_bytes_fn=self._algorithmic_flops_bytes,
)undefined| Aspect | CtKernel (cuTile) | CuteKernel (CuTe DSL) |
|---|---|---|
| Launch mechanism | | |
| Compilation | cuTile bytecode + MLIR | CuTe DSL JIT (cached automatically) |
| Autotuning | | |
| Grid setup | | Inside |
| TMA descriptors | Implicit (cuTile handles) | Explicit setup in host function |
| 方面 | CtKernel(cuTile) | CuteKernel(CuTe DSL) |
|---|---|---|
| 启动机制 | | 封装 |
| 编译方式 | cuTile字节码 + MLIR | CuTe DSL JIT(自动缓存) |
| 自动调优 | 来自cuda.tile_experimental的 | 每个配置使用 |
| 网格设置 | | 在 |
| TMA描述符 | 隐式处理(cuTile负责) | 在主机函数中显式设置 |
autotune_configsdo_bench_cudagraphautotune_configsdo_bench_cudagraphcompile()compile()@dataclass
class Tiling:
# Standard tile dimensions
tile_m: int
tile_n: int
tile_k: int
# CuTe DSL-specific fields
num_warpgroups: int # Warpgroups per CTA (typically 2-4)
num_pipeline_stages: int # Async copy pipeline depth
num_tma_buffers: int # TMA double/triple buffering
cluster_m: int = 1 # Cluster shape (M dimension)
cluster_n: int = 1 # Cluster shape (N dimension)
def validate(self, pd) -> bool:
# Validate against problem dimensions and device limits
...validate@dataclass
class Tiling:
# 标准分片维度
tile_m: int
tile_n: int
tile_k: int
# CuTe DSL特有的字段
num_warpgroups: int # 每个CTA的Warpgroups数量(通常为2-4)
num_pipeline_stages: int # 异步拷贝流水线深度
num_tma_buffers: int # TMA双缓冲/三缓冲
cluster_m: int = 1 # 集群形状(M维度)
cluster_n: int = 1 # 集群形状(N维度)
def validate(self, pd) -> bool:
# 根据问题维度和设备限制进行验证
...validatetcgen05sm_120atcgen05tcgen05nvidia-smi --query-gpu=name --format=csv,noheadertcgen05sm_120atcgen05tcgen05nvidia-smi --query-gpu=name --format=csv,noheader/cute-dsl-refdocs/cute-dsl/@cute.kernel@cute.kernel@cute.jitdocs/devices/src/mla_var3/conf/devices.json--check/cute-dsl-refdocs/cute-dsl/@cute.kernel@cute.jit@cute.kerneldocs/devices/src/mla_var3/conf/devices.json--check/cute-dsl-refdocs/cute-dsl/docs/cutlass-cpp/cute//learn-cute-dsl/cute-dsl-refdocs/cute-dsl/docs/cutlass-cpp/cute//learn-cute-dsldocs/knowledge/optimizations/docs/knowledge/anti-patterns/docs/knowledge/languages/cute-dsl/docs/knowledge/optimizations/docs/knowledge/anti-patterns/docs/knowledge/languages/cute-dsl/docs/kernels/<kernel>.mdsrc/mla_var3/kernel/cute_python/mla/<kernel>/<kernel>[_vN]/docs/kernels/<kernel>.mdsrc/mla_var3/kernel/cute_python/mla/<kernel>/<kernel>[_vN]/