원클릭으로
kernel-designer
Triton Ascend 算子算法草图设计 Skill — 根据任务描述设计高质量的算法草图(sketch), 用于指导后续代码生成。支持首次设计和基于历史上下文的迭代优化。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Triton Ascend 算子算法草图设计 Skill — 根据任务描述设计高质量的算法草图(sketch), 用于指导后续代码生成。支持首次设计和基于历史上下文的迭代优化。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
擅长在 Ascend NPU 平台上编写高效 Triton 算子的性能优化专家。 按照严格的顺序逐步优化 Triton 代码,每次只尝试一个优化点, 确保优化前后功能一致、精度一致。 ⚠️ 只能使用本 skill 规定的优化方式,禁止使用任何超出本 skill 之外的优化方式。
多 Case 专用 Kernel 分裂 Skill — 在泛用 Kernel 优化完成后,针对不同 Shape/Case 特征 生成专用 Kernel,构建智能调度器,实现性能最大化。失败自动回退到泛用 Kernel。
算子代码验证 Skill — 按照标准验证流程验证生成的内核代码。 创建验证项目文件,调用 scripts/verify.py 运行验证,验证通过后 调用 scripts/benchmark.py 进行性能测试并收集结果。
Triton Ascend 算子代码生成 Skill — 根据 KernelBench 格式任务描述生成高性能 Triton Ascend 内核代码。支持首次生成和基于错误反馈的迭代优化。
TileLang kernel 设计与实现专家 Skill。为 PyTorch Model 设计并实现自定义 TileLang kernel: 完成 block-level 设计、tile-level 设计,并生成 model_new_tilelang.py 调用自定义 TileLang kernel。
AscendC kernel 转译与实现专家 Skill。将 TileLang 设计转译为 AscendC kernel, 并生成 model_new_ascendc.py 调用 AscendC kernel。
| name | kernel-designer |
| description | Triton Ascend 算子算法草图设计 Skill — 根据任务描述设计高质量的算法草图(sketch), 用于指导后续代码生成。支持首次设计和基于历史上下文的迭代优化。 |
| argument-hint | 输入:op_name、task_desc(任务文件内容)、arch。 可选:user_requirements、previous_sketch、history_context、inspirations。 输出:UnifiedSketch DSL 格式的算法草图。 固定参数:backend=ascend、framework=torch、dsl=triton_ascend。 |
你的任务是基于以下固定配置设计高质量的算法草图(sketch):
⚠️ 你仅生成算法草图,不生成可执行代码。草图用于指导后续的代码生成(kernel-generator)。
你将获得以下信息:
Model 类)@references/sketch-design.md — UnifiedSketch DSL 语法规范、核心操作、设计模式、最佳实践
硬件规格(按 arch 选择对应文件,位于 kernel-generator/references/ 目录):
| arch | 文档 |
|---|---|
| ascend910b4 | kernel-generator/references/hw-ascend910b4.md |
| ascend910b3 | kernel-generator/references/hw-ascend910b3.md |
| ascend910b2c | kernel-generator/references/hw-ascend910b2c.md |
| ascend910b2 | kernel-generator/references/hw-ascend910b2.md |
| ascend910b1 | kernel-generator/references/hw-ascend910b1.md |
| ascend910_9362 | kernel-generator/references/hw-ascend910-9362.md |
| ascend910_9372 | kernel-generator/references/hw-ascend910-9372.md |
| ascend910_9381 | kernel-generator/references/hw-ascend910-9381.md |
| ascend910_9382 | kernel-generator/references/hw-ascend910-9382.md |
| ascend910_9391 | kernel-generator/references/hw-ascend910-9391.md |
| ascend910_9392 | kernel-generator/references/hw-ascend910-9392.md |
使用 read 工具读取对应架构的硬件规格文件。
根据任务描述中的算子类型,从以下案例中选择最相关的 2 个加载。选择依据:算子类型匹配 > 数据规模接近 > 优化模式相似。
| 类别 | 案例文件 | 核心优化 |
|---|---|---|
| Elementwise | @references/cases/elemwise-broadcast-2d.md | 2D 广播:小维不切分、循环外加载 |
@references/cases/elemwise-broadcast-3d.md | 跨轴 3D 广播:两阶段 kernel | |
@references/cases/elemwise-cast.md | int8→fp16:二次切分 + 用满 UB | |
@references/cases/elemwise-concat.md | Slice+Concat 融合:精确切片 load | |
@references/cases/elemwise-zeros.md | 小 shape:少核、减调度开销 | |
| Index | @references/cases/index-histogram.md | 直方图:预排序 + 二分查找 |
@references/cases/index-put.md | 批量 load 索引到 UB、get_element 复用 | |
| MatMul | @references/cases/matmul-swizzle2d.md | 固定核心数 grid、Swizzle2D 块重排 |
| Reduction | @references/cases/reduction-amax-large.md | M≪N:reduce 轴多核 + 原子 + 二次切分 |
@references/cases/reduction-amax-medium.md | 中等规模:矩阵累加再归约 | |
@references/cases/reduction-amax-small.md | 极小 shape:grid=1 最优 | |
@references/cases/reduction-amin-atomic.md | 原子 amin:两种原子方案对比 | |
@references/cases/reduction-amin-large.md | 超大 1D:二次切分 + 重组 | |
@references/cases/reduction-amin-medium.md | 大 N 维 amin:矩阵 min 再轴归约 | |
@references/cases/reduction-amin-small.md | 1D amin:并行度平衡 | |
@references/cases/reduction-mean-large.md | mean 行二次切分 | |
@references/cases/reduction-mean-medium.md | mean reduce 第一轴:重组 | |
@references/cases/reduction-prod-small.md | prod:tl.reduce + 自定义 mul | |
@references/cases/reduction-sum-fused.md | elemwise + sum 融合 | |
@references/cases/reduction-sum-large.md | 大规模 sum:重组 | |
@references/cases/reduction-weighted-swiglu.md | 3D SwiGLU backward:reshape + 行二次切分 |
| 条件 | 加载文档 |
|---|---|
任务描述中包含 hint 标记(@hint:, @range_hint 等) | @references/hint-mode.md |
task_desc 中 Model.forward() 的参考实现直接输出 sketch op_name { ... } 格式的算法草图,如果任务描述中包含 hint 标记,在草图末尾附上"设计适用范围"注释(格式见 hint-mode.md)。
@llm_hint 注解)算法草图应该:
重要:思考过程中请只做框架级别的分析和决策,例如:
不要在思考过程中写出完整的草图,完整草图只在最终输出中给出。