用途:在 AscendC 算子代码生成完成后,编译 ascend-kernel 工程、安装 whl 包、生成并运行精度测试,并在编译或测试失败时排错。前置条件为 op_host、op_kernel 代码已生成,ops.h、register.cpp、csrc/CMakeLists.txt 已更新,且 CANN 环境可用。
主要能力:编译工程(cd ascend-kernel;chmod +x build.sh;bash build.sh),以 output/ascend_kernel*.whl 是否存在判断成功;安装(pip install output/ascend_kernel*.whl --force-reinstall --no-deps);生成 tests/test_<op_name>.py 测试文件;运行功能测试(python tests/test_<op_name>.py)与精度测试(pytest tests/test_<op_name>.py -v)。
使用方式:每条 shell 命令前加载环境,source ${CANN_PATH}/*/set_env.sh 与 conda activate <env_name>;CANN 路径优先取 ASCEND_HOME_PATH,未设置时须询问用户,禁止硬编码或自行搜索路径。测试用例按 shape、dtype 参数化,CPU 参考用 PyTorch 原生函数或手写逻辑,fp32 用 rtol=1e-5,fp16/bf16 用 rtol=1e-3。
限制:排错循环最多 3 次,仍失败须向用户报告;不得修改 cmake/ 与 csrc/utils/ 下文件,不得删除其他算子注册代码,不得跳过功能测试直接做精度测试,不得忽略编译 warning,不得在 EXEC_KERNEL_CMD 中传入右值。可修改范围限于 op_host、op_kernel、ops.h、register.cpp、csrc/CMakeLists.txt 与测试文件。