SuperAPI AI 工具集

design-kernel

设计与创作

查看项目

更新于 10-16 07:57

技能介绍

用途:这是 hyper-mla 项目内跨所有支持语言与 DSL 的共享 kernel 设计工作流。确定实现语言后,需同时加载对应的语言特定设计技能,以获取 DSL 运行时模式、陷阱与 API 指引。

语言选择:表格列出 cutile-dsl(包路径 cutile,设计技能 /design-cutile-dsl-kernel,参考 /cutile-dsl-ref)与 cute-dsl(包路径 cute_python,设计技能 /design-cute-dsl-kernel,参考 /cute-dsl-ref)。前者适用于块级控制、tiling、CTA 重映射和编译器提示;后者适用于显式线程/warp 调度、TMA 流水线与共享内存控制。

命名与版本:公开名称使用 kebab-case 语言键,Python 包用下划线。kernel 包嵌套为 src/mla_var3/kernel/<lang_pkg>/mla/<design>/...。首选 CLI 入口是 python -m mla_var3.kernel <kernel> [<version>]。版本分语言层、层、设计层、版本层;首个版本无后缀称 base version,入口模块名必须与版本全名一致并包含 KernelPlan 子类。

用法:CLI 支持完整路径与快捷方式,例如 python -m mla_var3.kernel.cutile.mla.mla_var6_plus v4 --b=32 --s=16 --t=4096。新建版本用 python ./scripts/clone-kernel.py <kernel_full_name> <new_suffix> 克隆,脚本自动重写模块名、kernel 函数名、KernelPlan 子类名、Tiling 子类名与包内导入。正确性验证用 python -m mla_var3.kernel.<lang_pkg>.mla.<design> <version> --prof_type=disabled --check。

结构:每个版本需实现 KernelPlan 子类,包含 prepare_inputs、reference_fn、_autotune_configs、_algorithmic_flops_bytes、plan、plan_empty 等方法,并配合 Tiling dataclass 与 validate。组合模式包括顺序流水线 KernelPipeline,以及 ConcurrentKernels 并发加顺序合并。

限制:资料未提供收费、平台、性能效果等信息。实现前需读 DSL API 参考并结合语言特定技能,不要臆造 API。