关于 kernelgen-flagos
kernelgen-flagos 是用于 Python/Triton 仓库中 GPU 算子生成、优化和平台适配的技能,并为 FlagGems 和 vLLM 提供专用流程。它会根据仓库类型分派任务,算子工作必须使用 kernelgen-server。
主要功能
- 01为 Python/Triton 仓库生成 GPU 内核
- 02优化现有 Triton 内核
- 03将算子适配到目标平台
- 04为 FlagGems 和 vLLM 分派流程
- 05配置 kernelgen-server 并提交反馈
适用场景
- 01在 Python/Triton 仓库生成算子
- 02为 FlagGems 或 vLLM 优化 Triton 算子
- 03将 Triton 算子迁移到其他平台
MCP 相关
该技能会先检查并配置 kernelgen-server MCP 服务,再分派任务。生成、优化和平台适配分别通过 MCP 工具执行。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ flagos-ai/ skills --skill kernelgen-flagos安装后在 Claude Code 中输入/kernelgen-flagos确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
kernelgen-generate-for-flaggems.mdkernelgen-generate-for-vllm.mdkernelgen-generate.mdkernelgen-mcp-setup.mdkernelgen-optimize-for-flaggems.mdkernelgen-optimize-for-vllm.mdkernelgen-optimize.mdkernelgen-specialize-for-flaggems.mdkernelgen-specialize.mdkernelgen-submit-feedback.mdLICENSE.txtREADME_zh.mdREADME.md详细介绍
kernelgen-flagos — 统一 GPU 算子生成技能
这是一个统一入口,将生成和优化子技能整合在一起:
| 子技能文件 | 用途 |
|---|---|
| 生成 | |
kernelgen-generate.md | 为任意 Python/Triton 仓库生成 GPU 内核 |
kernelgen-generate-for-flaggems.md | 专门为 FlagGems 仓库生成内核 |
kernelgen-generate-for-vllm.md | 专门为 vLLM 仓库生成内核 |
| 优化 | |
kernelgen-optimize.md | 通过 MCP 迭代优化现有 Triton 内核(通用) |
kernelgen-optimize-for-flaggems.md | 优化 Triton 算子并集成到 FlagGems(3 种模式:内置/外部/实验性) |
kernelgen-optimize-for-vllm.md | 优化 Triton 算子并集成到 vLLM(通过 CustomOp 注册) |
| 平台专用化 | |
kernelgen-specialize.md | 通过 MCP specialize_kernel 将 Triton 算子专用于目标平台(例如,从 GPU 专用到 Ascend NPU) |
kernelgen-specialize-for-flaggems.md | 平台专用化 + FlagGems 集成(4 种模式:厂商算子/厂商融合/覆盖内置/实验性) |
| MCP 配置 | |
kernelgen-mcp-setup.md | 检查并自动配置 kernelgen-server MCP 服务(内置 URL,用户只需提供 Token) |
| 反馈 | |
kernelgen-submit-feedback.md | 通过 GitHub 或电子邮件提交错误报告和反馈 |
所有子技能文件都位于与此 SKILL.md 文件相同的目录中。
路由流程 — 执行其他操作前必须先完成此流程
阶段 0:检查 MCP 配置
首先,确保已配置 kernelgen-server MCP 服务并使其就绪。
使用 Glob 工具在此技能的目录中查找 kernelgen-mcp-setup.md:
Glob: **/skills/kernelgen-flagos/kernelgen-mcp-setup.md
然后使用 Read 工具读取匹配的文件,并严格遵循其中的说明。
- 如果已配置 MCP → 继续阶段 1。
- 如果尚未配置 MCP → 配置技能将引导用户完成配置。 配置写入完成并提示用户重启后,在此处停止——不要继续阶段 1。
阶段 1:检测仓库类型
使用 Glob 工具检查当前工作目录中的项目身份文件:
Glob: pyproject.toml
Glob: setup.py
Glob: setup.cfg
然后使用 Read 工具读取存在的文件。根据文件内容确定项目名称(例如,pyproject.toml 中的 name = "flag_gems",或 setup.py 中的 name='vllm')。
同时使用 Glob 工具检查特征目录结构:
FlagGems 指标(满足任意一项即可):
- 存在
src/flag_gems/目录 - 项目名称为
flag_gems、flag-gems或FlagGems - 测试文件中出现
import flag_gems
vLLM 指标(满足任意一项即可):
- 仓库根目录中存在
vllm/目录(其中包含vllm/__init__.py) - 项目名称为
vllm csrc/目录与vllm/并列存在
阶段 2:分派到子技能
根据检测结果,使用 Read 工具读取此技能目录中相应的子技能文件,然后严格遵循该文件中的说明。
查找子技能文件:这些文件与此 SKILL.md 位于同一目录中。使用 Glob 工具查找路径:
Glob: **/skills/kernelgen-flagos/kernelgen-generate.md
然后使用 Read 工具读取匹配的路径。
决策表
生成请求(用户想要创建/生成新的算子):
| 检测结果 | 操作 |
|---|---|
| 检测到 FlagGems 仓库 | 阅读 kernelgen-generate-for-flaggems.md 并按其说明操作 |
| 检测到 vLLM 仓库 | 阅读 kernelgen-generate-for-vllm.md 并按其说明操作 |
| 均未检测到(或未知) | 阅读 kernelgen-generate.md 并按其说明操作 |
优化请求(用户想要优化现有算子,提到“optimize”“speedup”“improve performance”):
| 检测结果 | 操作 |
|---|---|
| 检测到 FlagGems 仓库 | 阅读 kernelgen-optimize-for-flaggems.md 并按其说明操作 |
| 检测到 vLLM 仓库 | 阅读 kernelgen-optimize-for-vllm.md 并按其说明操作 |
| 均未检测到(或未知) | 阅读 kernelgen-optimize.md 并按其说明操作 |
专用化请求(用户想要将算子迁移/专用化到其他平台,提到“specialize”“migrate to Ascend/NPU”“platform migration”):
| 检测结果 | 操作 |
|---|---|
| 检测到 FlagGems 仓库 | 阅读 kernelgen-specialize-for-flaggems.md 并按其说明操作 |
| 均未检测到(或未知) | 阅读 kernelgen-specialize.md 并按其说明操作 |
反馈请求:
| 检测结果 | 操作 |
|---|---|
| 用户报告错误或请求提交反馈 | 阅读 kernelgen-submit-feedback.md 并按其说明操作 |
重要规则:
- 始终先检测,再分派。 切勿跳过检测。
- 开始执行前,完整阅读子技能文件,不要只读其中一部分。
- 严格遵循子技能说明,将其视为主 SKILL.md。子技能中的所有步骤、规则和流程均完全适用。
- 不要混用子技能。 分派到某个子技能后,应遵循其说明直至完成。
- 如果用户明确指定某个子技能(例如“使用 FlagGems 版本”),无论自动检测结果如何,都应遵从该请求。
- 关键——必须使用 MCP:所有算子代码生成都必须通过
mcp__kernelgen-mcp__generate_kernelMCP 工具进行。优化使用mcp__kernelgen-mcp__optimize_kernel,平台专用化使用mcp__kernelgen-mcp__specialize_kernel。切勿自行生成 Triton 内核、PyTorch 封装或算子实现。如果未配置 MCP、无法连接,或在所有重试后仍然失败,请停止并报告问题——不要退而手动编写代码。
阶段 3:反馈处理
在工作流的任何阶段,如果用户报告错误、表示某项功能无法正常工作,或要求提交有关此技能的反馈:
- 使用 Read 工具,从此技能的目录中读取
kernelgen-submit-feedback.md。 - 按照该文件中描述的反馈提交流程操作。
- 提交反馈后,询问用户是要继续算子生成工作流还是停止。
用户快速参考
# === Generation ===
# Generate a kernel operator (auto-detects repo type)
/kernelgen-flagos relu
# Generate with explicit function type
/kernelgen-flagos rms_norm --func-type normalization
# === Optimization ===
# Optimize an existing Triton kernel (auto-detects repo type)
# Just say "optimize the relu kernel" or "improve kernel performance"
# The skill will automatically dispatch to the right optimization sub-skill
# The skill will automatically:
# - Detect if you're in a FlagGems repo → use FlagGems-specific workflow
# - Detect if you're in a vLLM repo → use vLLM-specific workflow
# - Otherwise → use the general-purpose workflow
如果生成过程中遇到任何问题,只需说“提交反馈”或“报告错误”,该技能就会引导你完成反馈提交流程。