SuperAPI AI 工具集

ascendc

编程与开发

查看项目

更新于 10-15 17:19

技能介绍

用途:在 ascend-kernel 项目(通过 csrc/ops/、csrc/register.cpp、build.sh 将算子暴露为 torch.ops.npu.<op> 的 PyTorch 自定义算子工程)中,把 AscendC 自定义算子从规格推进到可构建、可基准测试的成品。适用于向量/行/索引/排序/池化类算子、FP16/BF16 升精度、两级 tiling;不适用于 ops-transformer 的 aclnn/genop 流程。

主要能力:按阶段推进——环境与需求确认、项目初始化、设计文档、测试用例生成、代码生成与框架适配、编译安装测试调试、接口文档、精度评估、性能评估、性能优化、代码审查,以及可选的 mssanitizer 内存检查。内置模板、示例与脚本,要求复用而非自造项目结构或 API。

使用方式:先完整阅读 SKILL.md,每个阶段动手前必须打开对应的 references/NN-.md;遵守阶段门禁,前一阶段检查表未通过不得进入下一阶段。输入为算子名(snake_case)与功能/数学规格;输出为已构建安装的算子、design.md、统一测试用例文档、PyTorch 风格 README、精度报告与性能报告等。环境需确认 CANN(echo $ASCEND_HOME_PATH,未设置须询问用户路径,并按 shell 执行 source ${CANN_PATH}//set_env.sh)与 conda 环境(echo $CONDA_DEFAULT_ENV,非 base 时使用,否则询问环境名并用 conda activate <env>)。构建安装命令为 chmod +x build.sh && bash build.sh 与 pip install output/ascend_kernel*.whl --force-reinstall --no-deps。

限制与约束:禁止跳过设计直接写代码;FP16/BF16 必须先升到 FP32 再做复杂数学;GM↔UB 必须用 DataCopyPad;不得向 EXEC_KERNEL_CMD 传右值;不得硬编码核数或 UB 大小;不得修改 cmake/ 或 csrc/utils/;Reduce 后不得复用源张量;内核内不得用 std::min/max/abs/sqrt/exp 等;高维切分 API 的 repeatTime 不得大于 255;性能结论不得使用非 profiler 计时。精度/性能/优化结果必须在对话中展示表格与结论,不能只给路径。依赖:可用的 CANN 工具链,以及带昇腾 NPU 的主机上的 PyTorch + torch_npu conda 环境。