| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feature: add PID basis GEMM fit operators Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !20 merge pid-basis-gemm-fit-score into master feature: add PID basis GEMM fit operators Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## 类型 - [x] 新功能 - [x] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 描述 本 PR 在 prediction/ProcessControl/PIDModelFit/ 下新增工业过程控制 PID 模型辨识算子组,面向 PID 整定、自整定和数字孪生仿真中的多回路、多候选模型筛选场景。 本次提交包含三个工程上独立的 Ascend C 算子: | 算子 | 目录 | 公开接口 | 模型语义 | |------|------|----------|----------| | FOPDT basis-GEMM fit | pid_fopdt_basis_gemm_fit/ | aclnnPidFopdtBasisGemmFit | 一阶惯性加纯滞后模型 | | IPDT basis-GEMM fit | pid_ipdt_basis_gemm_fit/ | aclnnPidIpdtBasisGemmFit | 积分加纯滞后模型 | | SOPDT basis-GEMM fit | pid_sopdt_basis_gemm_fit/ | aclnnPidSopdtBasisGemmFit | 二阶惯性加纯滞后模型 | 三个算子均具备独立的 CMakeLists.txt、README.md、docs/algorithm.md、docs/api_reference.md、op_host/、op_kernel/、examples/、tests/。公共目录 common/ 只复用数学等价的 basis-GEMM best reduce 底座,避免把三类模型混成一个带 family 参数的算子。 ### 算法路线 将传统逐回路、逐候选的模型辨识改写为: text dot[B, M] = y_centered[B, N] x basis_t[N, M] K_hat[b, m] = dot[b, m] / basis_norm[m] SSE[b, m] = y_energy[b] - dot[b, m]^2 / basis_norm[m] best_idx[b] = argmin_m SSE[b, m] 其中 GEMM 主计算复用 CANN 内置 MatMul,自定义算子融合完成 K_hat/SSE/best_idx reduce,输出每条回路的 best_sse、best_k、best_idx,避免输出完整评分矩阵。 ### 目录结构 text prediction/ProcessControl/ ├── README.md └── PIDModelFit/ ├── README.md ├── docs/ │ ├── design.md │ └── test_report.md ├── common/ │ ├── pid_basis_gemm_fit_common.h │ ├── pid_basis_gemm_fit_host_impl.h │ ├── pid_basis_gemm_fit_kernel.h │ ├── pid_basis_gemm_acl_smoke.h │ └── pid_basis_gemm_reference.py ├── pid_fopdt_basis_gemm_fit/ ├── pid_ipdt_basis_gemm_fit/ └── pid_sopdt_basis_gemm_fit/ ## 如何测试 ### 1. 本地 Python 精度测试 bash python -m pytest \ prediction/ProcessControl/PIDModelFit/pid_fopdt_basis_gemm_fit/tests/test_pid_fopdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_ipdt_basis_gemm_fit/tests/test_pid_ipdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_sopdt_basis_gemm_fit/tests/test_pid_sopdt_basis_gemm_fit.py \ -q 结果: text 6 passed ### 2. Python 语法检查 bash python -m compileall -q prediction/ProcessControl/PIDModelFit 结果:通过。 ### 3. Ascend C 编译与 NPU smoke 已在 node202 / Ascend 910B1 环境验证: bash for op in pid_fopdt_basis_gemm_fit pid_ipdt_basis_gemm_fit pid_sopdt_basis_gemm_fit; do cd prediction/ProcessControl/PIDModelFit/$op rm -rf build cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSOC_VERSION=Ascend910B1 cmake --build build -j 2 done 三个算子均编译通过,并完成 ACL smoke: text PidFopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidIpdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidSopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED ### 4. 性能验证记录 Ascend 910B1 原型验证中,典型规模下 NPU cached 端到端路径相对 CPU 多线程完整 fit 有明显优势: | 模型 | 配置 | CPU 多线程完整 fit | NPU cached 端到端 | NPU cold 端到端 | |------|------|--------------------|-------------------|-----------------| | FOPDT | B=64,N=1024,M=256 | 9.22 ms | 0.43 ms | 0.87 ms | | IPDT | B=64,N=1024,M=256 | 9.64 ms | 0.40 ms | 0.63 ms | | SOPDT | B=64,N=1024,M=256 | 8.46 ms | 0.57 ms | 0.87 ms | | FOPDT | B=128,N=1024,M=512 | 31.55 ms | 0.99 ms | 1.02 ms | | IPDT | B=128,N=1024,M=512 | 32.63 ms | 0.64 ms | 1.30 ms | | SOPDT | B=128,N=1024,M=512 | 33.40 ms | 0.87 ms | 1.19 ms | 详细测试说明见 prediction/ProcessControl/PIDModelFit/docs/test_report.md。 ## Checklist - [x] 我的代码遵循这个项目的代码风格 - [x] 我已经自己测试过我的代码 - [x] 我已经更新了相应的文档 - [x] 我已经根据需要更新了对应的变更日志/测试记录 - [x] 我已经在标题中正确使用了类型标签 ## 其他信息 本 PR 的核心设计原则是:FOPDT/IPDT/SOPDT 保持工程独立,便于评审、验收、单独测试和后续分别优化;公共底座只复用等价数学逻辑,不影响算子边界。 See merge request: cann/mat-chem-sim-pred!20 | 1 个月前 | |
feature: add PID basis GEMM fit operators Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !20 merge pid-basis-gemm-fit-score into master feature: add PID basis GEMM fit operators Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## 类型 - [x] 新功能 - [x] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 描述 本 PR 在 prediction/ProcessControl/PIDModelFit/ 下新增工业过程控制 PID 模型辨识算子组,面向 PID 整定、自整定和数字孪生仿真中的多回路、多候选模型筛选场景。 本次提交包含三个工程上独立的 Ascend C 算子: | 算子 | 目录 | 公开接口 | 模型语义 | |------|------|----------|----------| | FOPDT basis-GEMM fit | pid_fopdt_basis_gemm_fit/ | aclnnPidFopdtBasisGemmFit | 一阶惯性加纯滞后模型 | | IPDT basis-GEMM fit | pid_ipdt_basis_gemm_fit/ | aclnnPidIpdtBasisGemmFit | 积分加纯滞后模型 | | SOPDT basis-GEMM fit | pid_sopdt_basis_gemm_fit/ | aclnnPidSopdtBasisGemmFit | 二阶惯性加纯滞后模型 | 三个算子均具备独立的 CMakeLists.txt、README.md、docs/algorithm.md、docs/api_reference.md、op_host/、op_kernel/、examples/、tests/。公共目录 common/ 只复用数学等价的 basis-GEMM best reduce 底座,避免把三类模型混成一个带 family 参数的算子。 ### 算法路线 将传统逐回路、逐候选的模型辨识改写为: text dot[B, M] = y_centered[B, N] x basis_t[N, M] K_hat[b, m] = dot[b, m] / basis_norm[m] SSE[b, m] = y_energy[b] - dot[b, m]^2 / basis_norm[m] best_idx[b] = argmin_m SSE[b, m] 其中 GEMM 主计算复用 CANN 内置 MatMul,自定义算子融合完成 K_hat/SSE/best_idx reduce,输出每条回路的 best_sse、best_k、best_idx,避免输出完整评分矩阵。 ### 目录结构 text prediction/ProcessControl/ ├── README.md └── PIDModelFit/ ├── README.md ├── docs/ │ ├── design.md │ └── test_report.md ├── common/ │ ├── pid_basis_gemm_fit_common.h │ ├── pid_basis_gemm_fit_host_impl.h │ ├── pid_basis_gemm_fit_kernel.h │ ├── pid_basis_gemm_acl_smoke.h │ └── pid_basis_gemm_reference.py ├── pid_fopdt_basis_gemm_fit/ ├── pid_ipdt_basis_gemm_fit/ └── pid_sopdt_basis_gemm_fit/ ## 如何测试 ### 1. 本地 Python 精度测试 bash python -m pytest \ prediction/ProcessControl/PIDModelFit/pid_fopdt_basis_gemm_fit/tests/test_pid_fopdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_ipdt_basis_gemm_fit/tests/test_pid_ipdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_sopdt_basis_gemm_fit/tests/test_pid_sopdt_basis_gemm_fit.py \ -q 结果: text 6 passed ### 2. Python 语法检查 bash python -m compileall -q prediction/ProcessControl/PIDModelFit 结果:通过。 ### 3. Ascend C 编译与 NPU smoke 已在 node202 / Ascend 910B1 环境验证: bash for op in pid_fopdt_basis_gemm_fit pid_ipdt_basis_gemm_fit pid_sopdt_basis_gemm_fit; do cd prediction/ProcessControl/PIDModelFit/$op rm -rf build cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSOC_VERSION=Ascend910B1 cmake --build build -j 2 done 三个算子均编译通过,并完成 ACL smoke: text PidFopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidIpdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidSopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED ### 4. 性能验证记录 Ascend 910B1 原型验证中,典型规模下 NPU cached 端到端路径相对 CPU 多线程完整 fit 有明显优势: | 模型 | 配置 | CPU 多线程完整 fit | NPU cached 端到端 | NPU cold 端到端 | |------|------|--------------------|-------------------|-----------------| | FOPDT | B=64,N=1024,M=256 | 9.22 ms | 0.43 ms | 0.87 ms | | IPDT | B=64,N=1024,M=256 | 9.64 ms | 0.40 ms | 0.63 ms | | SOPDT | B=64,N=1024,M=256 | 8.46 ms | 0.57 ms | 0.87 ms | | FOPDT | B=128,N=1024,M=512 | 31.55 ms | 0.99 ms | 1.02 ms | | IPDT | B=128,N=1024,M=512 | 32.63 ms | 0.64 ms | 1.30 ms | | SOPDT | B=128,N=1024,M=512 | 33.40 ms | 0.87 ms | 1.19 ms | 详细测试说明见 prediction/ProcessControl/PIDModelFit/docs/test_report.md。 ## Checklist - [x] 我的代码遵循这个项目的代码风格 - [x] 我已经自己测试过我的代码 - [x] 我已经更新了相应的文档 - [x] 我已经根据需要更新了对应的变更日志/测试记录 - [x] 我已经在标题中正确使用了类型标签 ## 其他信息 本 PR 的核心设计原则是:FOPDT/IPDT/SOPDT 保持工程独立,便于评审、验收、单独测试和后续分别优化;公共底座只复用等价数学逻辑,不影响算子边界。 See merge request: cann/mat-chem-sim-pred!20 | 1 个月前 | |
feature: add PID basis GEMM fit operators Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !20 merge pid-basis-gemm-fit-score into master feature: add PID basis GEMM fit operators Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## 类型 - [x] 新功能 - [x] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 描述 本 PR 在 prediction/ProcessControl/PIDModelFit/ 下新增工业过程控制 PID 模型辨识算子组,面向 PID 整定、自整定和数字孪生仿真中的多回路、多候选模型筛选场景。 本次提交包含三个工程上独立的 Ascend C 算子: | 算子 | 目录 | 公开接口 | 模型语义 | |------|------|----------|----------| | FOPDT basis-GEMM fit | pid_fopdt_basis_gemm_fit/ | aclnnPidFopdtBasisGemmFit | 一阶惯性加纯滞后模型 | | IPDT basis-GEMM fit | pid_ipdt_basis_gemm_fit/ | aclnnPidIpdtBasisGemmFit | 积分加纯滞后模型 | | SOPDT basis-GEMM fit | pid_sopdt_basis_gemm_fit/ | aclnnPidSopdtBasisGemmFit | 二阶惯性加纯滞后模型 | 三个算子均具备独立的 CMakeLists.txt、README.md、docs/algorithm.md、docs/api_reference.md、op_host/、op_kernel/、examples/、tests/。公共目录 common/ 只复用数学等价的 basis-GEMM best reduce 底座,避免把三类模型混成一个带 family 参数的算子。 ### 算法路线 将传统逐回路、逐候选的模型辨识改写为: text dot[B, M] = y_centered[B, N] x basis_t[N, M] K_hat[b, m] = dot[b, m] / basis_norm[m] SSE[b, m] = y_energy[b] - dot[b, m]^2 / basis_norm[m] best_idx[b] = argmin_m SSE[b, m] 其中 GEMM 主计算复用 CANN 内置 MatMul,自定义算子融合完成 K_hat/SSE/best_idx reduce,输出每条回路的 best_sse、best_k、best_idx,避免输出完整评分矩阵。 ### 目录结构 text prediction/ProcessControl/ ├── README.md └── PIDModelFit/ ├── README.md ├── docs/ │ ├── design.md │ └── test_report.md ├── common/ │ ├── pid_basis_gemm_fit_common.h │ ├── pid_basis_gemm_fit_host_impl.h │ ├── pid_basis_gemm_fit_kernel.h │ ├── pid_basis_gemm_acl_smoke.h │ └── pid_basis_gemm_reference.py ├── pid_fopdt_basis_gemm_fit/ ├── pid_ipdt_basis_gemm_fit/ └── pid_sopdt_basis_gemm_fit/ ## 如何测试 ### 1. 本地 Python 精度测试 bash python -m pytest \ prediction/ProcessControl/PIDModelFit/pid_fopdt_basis_gemm_fit/tests/test_pid_fopdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_ipdt_basis_gemm_fit/tests/test_pid_ipdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_sopdt_basis_gemm_fit/tests/test_pid_sopdt_basis_gemm_fit.py \ -q 结果: text 6 passed ### 2. Python 语法检查 bash python -m compileall -q prediction/ProcessControl/PIDModelFit 结果:通过。 ### 3. Ascend C 编译与 NPU smoke 已在 node202 / Ascend 910B1 环境验证: bash for op in pid_fopdt_basis_gemm_fit pid_ipdt_basis_gemm_fit pid_sopdt_basis_gemm_fit; do cd prediction/ProcessControl/PIDModelFit/$op rm -rf build cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSOC_VERSION=Ascend910B1 cmake --build build -j 2 done 三个算子均编译通过,并完成 ACL smoke: text PidFopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidIpdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidSopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED ### 4. 性能验证记录 Ascend 910B1 原型验证中,典型规模下 NPU cached 端到端路径相对 CPU 多线程完整 fit 有明显优势: | 模型 | 配置 | CPU 多线程完整 fit | NPU cached 端到端 | NPU cold 端到端 | |------|------|--------------------|-------------------|-----------------| | FOPDT | B=64,N=1024,M=256 | 9.22 ms | 0.43 ms | 0.87 ms | | IPDT | B=64,N=1024,M=256 | 9.64 ms | 0.40 ms | 0.63 ms | | SOPDT | B=64,N=1024,M=256 | 8.46 ms | 0.57 ms | 0.87 ms | | FOPDT | B=128,N=1024,M=512 | 31.55 ms | 0.99 ms | 1.02 ms | | IPDT | B=128,N=1024,M=512 | 32.63 ms | 0.64 ms | 1.30 ms | | SOPDT | B=128,N=1024,M=512 | 33.40 ms | 0.87 ms | 1.19 ms | 详细测试说明见 prediction/ProcessControl/PIDModelFit/docs/test_report.md。 ## Checklist - [x] 我的代码遵循这个项目的代码风格 - [x] 我已经自己测试过我的代码 - [x] 我已经更新了相应的文档 - [x] 我已经根据需要更新了对应的变更日志/测试记录 - [x] 我已经在标题中正确使用了类型标签 ## 其他信息 本 PR 的核心设计原则是:FOPDT/IPDT/SOPDT 保持工程独立,便于评审、验收、单独测试和后续分别优化;公共底座只复用等价数学逻辑,不影响算子边界。 See merge request: cann/mat-chem-sim-pred!20 | 1 个月前 | |
feature: add PID basis GEMM fit operators Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !20 merge pid-basis-gemm-fit-score into master feature: add PID basis GEMM fit operators Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## 类型 - [x] 新功能 - [x] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 描述 本 PR 在 prediction/ProcessControl/PIDModelFit/ 下新增工业过程控制 PID 模型辨识算子组,面向 PID 整定、自整定和数字孪生仿真中的多回路、多候选模型筛选场景。 本次提交包含三个工程上独立的 Ascend C 算子: | 算子 | 目录 | 公开接口 | 模型语义 | |------|------|----------|----------| | FOPDT basis-GEMM fit | pid_fopdt_basis_gemm_fit/ | aclnnPidFopdtBasisGemmFit | 一阶惯性加纯滞后模型 | | IPDT basis-GEMM fit | pid_ipdt_basis_gemm_fit/ | aclnnPidIpdtBasisGemmFit | 积分加纯滞后模型 | | SOPDT basis-GEMM fit | pid_sopdt_basis_gemm_fit/ | aclnnPidSopdtBasisGemmFit | 二阶惯性加纯滞后模型 | 三个算子均具备独立的 CMakeLists.txt、README.md、docs/algorithm.md、docs/api_reference.md、op_host/、op_kernel/、examples/、tests/。公共目录 common/ 只复用数学等价的 basis-GEMM best reduce 底座,避免把三类模型混成一个带 family 参数的算子。 ### 算法路线 将传统逐回路、逐候选的模型辨识改写为: text dot[B, M] = y_centered[B, N] x basis_t[N, M] K_hat[b, m] = dot[b, m] / basis_norm[m] SSE[b, m] = y_energy[b] - dot[b, m]^2 / basis_norm[m] best_idx[b] = argmin_m SSE[b, m] 其中 GEMM 主计算复用 CANN 内置 MatMul,自定义算子融合完成 K_hat/SSE/best_idx reduce,输出每条回路的 best_sse、best_k、best_idx,避免输出完整评分矩阵。 ### 目录结构 text prediction/ProcessControl/ ├── README.md └── PIDModelFit/ ├── README.md ├── docs/ │ ├── design.md │ └── test_report.md ├── common/ │ ├── pid_basis_gemm_fit_common.h │ ├── pid_basis_gemm_fit_host_impl.h │ ├── pid_basis_gemm_fit_kernel.h │ ├── pid_basis_gemm_acl_smoke.h │ └── pid_basis_gemm_reference.py ├── pid_fopdt_basis_gemm_fit/ ├── pid_ipdt_basis_gemm_fit/ └── pid_sopdt_basis_gemm_fit/ ## 如何测试 ### 1. 本地 Python 精度测试 bash python -m pytest \ prediction/ProcessControl/PIDModelFit/pid_fopdt_basis_gemm_fit/tests/test_pid_fopdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_ipdt_basis_gemm_fit/tests/test_pid_ipdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_sopdt_basis_gemm_fit/tests/test_pid_sopdt_basis_gemm_fit.py \ -q 结果: text 6 passed ### 2. Python 语法检查 bash python -m compileall -q prediction/ProcessControl/PIDModelFit 结果:通过。 ### 3. Ascend C 编译与 NPU smoke 已在 node202 / Ascend 910B1 环境验证: bash for op in pid_fopdt_basis_gemm_fit pid_ipdt_basis_gemm_fit pid_sopdt_basis_gemm_fit; do cd prediction/ProcessControl/PIDModelFit/$op rm -rf build cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSOC_VERSION=Ascend910B1 cmake --build build -j 2 done 三个算子均编译通过,并完成 ACL smoke: text PidFopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidIpdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidSopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED ### 4. 性能验证记录 Ascend 910B1 原型验证中,典型规模下 NPU cached 端到端路径相对 CPU 多线程完整 fit 有明显优势: | 模型 | 配置 | CPU 多线程完整 fit | NPU cached 端到端 | NPU cold 端到端 | |------|------|--------------------|-------------------|-----------------| | FOPDT | B=64,N=1024,M=256 | 9.22 ms | 0.43 ms | 0.87 ms | | IPDT | B=64,N=1024,M=256 | 9.64 ms | 0.40 ms | 0.63 ms | | SOPDT | B=64,N=1024,M=256 | 8.46 ms | 0.57 ms | 0.87 ms | | FOPDT | B=128,N=1024,M=512 | 31.55 ms | 0.99 ms | 1.02 ms | | IPDT | B=128,N=1024,M=512 | 32.63 ms | 0.64 ms | 1.30 ms | | SOPDT | B=128,N=1024,M=512 | 33.40 ms | 0.87 ms | 1.19 ms | 详细测试说明见 prediction/ProcessControl/PIDModelFit/docs/test_report.md。 ## Checklist - [x] 我的代码遵循这个项目的代码风格 - [x] 我已经自己测试过我的代码 - [x] 我已经更新了相应的文档 - [x] 我已经根据需要更新了对应的变更日志/测试记录 - [x] 我已经在标题中正确使用了类型标签 ## 其他信息 本 PR 的核心设计原则是:FOPDT/IPDT/SOPDT 保持工程独立,便于评审、验收、单独测试和后续分别优化;公共底座只复用等价数学逻辑,不影响算子边界。 See merge request: cann/mat-chem-sim-pred!20 | 1 个月前 | |
feature: add PID basis GEMM fit operators Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !20 merge pid-basis-gemm-fit-score into master feature: add PID basis GEMM fit operators Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## 类型 - [x] 新功能 - [x] 构建过程或辅助工具的变动 - [x] 文档内容更新 ## 描述 本 PR 在 prediction/ProcessControl/PIDModelFit/ 下新增工业过程控制 PID 模型辨识算子组,面向 PID 整定、自整定和数字孪生仿真中的多回路、多候选模型筛选场景。 本次提交包含三个工程上独立的 Ascend C 算子: | 算子 | 目录 | 公开接口 | 模型语义 | |------|------|----------|----------| | FOPDT basis-GEMM fit | pid_fopdt_basis_gemm_fit/ | aclnnPidFopdtBasisGemmFit | 一阶惯性加纯滞后模型 | | IPDT basis-GEMM fit | pid_ipdt_basis_gemm_fit/ | aclnnPidIpdtBasisGemmFit | 积分加纯滞后模型 | | SOPDT basis-GEMM fit | pid_sopdt_basis_gemm_fit/ | aclnnPidSopdtBasisGemmFit | 二阶惯性加纯滞后模型 | 三个算子均具备独立的 CMakeLists.txt、README.md、docs/algorithm.md、docs/api_reference.md、op_host/、op_kernel/、examples/、tests/。公共目录 common/ 只复用数学等价的 basis-GEMM best reduce 底座,避免把三类模型混成一个带 family 参数的算子。 ### 算法路线 将传统逐回路、逐候选的模型辨识改写为: text dot[B, M] = y_centered[B, N] x basis_t[N, M] K_hat[b, m] = dot[b, m] / basis_norm[m] SSE[b, m] = y_energy[b] - dot[b, m]^2 / basis_norm[m] best_idx[b] = argmin_m SSE[b, m] 其中 GEMM 主计算复用 CANN 内置 MatMul,自定义算子融合完成 K_hat/SSE/best_idx reduce,输出每条回路的 best_sse、best_k、best_idx,避免输出完整评分矩阵。 ### 目录结构 text prediction/ProcessControl/ ├── README.md └── PIDModelFit/ ├── README.md ├── docs/ │ ├── design.md │ └── test_report.md ├── common/ │ ├── pid_basis_gemm_fit_common.h │ ├── pid_basis_gemm_fit_host_impl.h │ ├── pid_basis_gemm_fit_kernel.h │ ├── pid_basis_gemm_acl_smoke.h │ └── pid_basis_gemm_reference.py ├── pid_fopdt_basis_gemm_fit/ ├── pid_ipdt_basis_gemm_fit/ └── pid_sopdt_basis_gemm_fit/ ## 如何测试 ### 1. 本地 Python 精度测试 bash python -m pytest \ prediction/ProcessControl/PIDModelFit/pid_fopdt_basis_gemm_fit/tests/test_pid_fopdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_ipdt_basis_gemm_fit/tests/test_pid_ipdt_basis_gemm_fit.py \ prediction/ProcessControl/PIDModelFit/pid_sopdt_basis_gemm_fit/tests/test_pid_sopdt_basis_gemm_fit.py \ -q 结果: text 6 passed ### 2. Python 语法检查 bash python -m compileall -q prediction/ProcessControl/PIDModelFit 结果:通过。 ### 3. Ascend C 编译与 NPU smoke 已在 node202 / Ascend 910B1 环境验证: bash for op in pid_fopdt_basis_gemm_fit pid_ipdt_basis_gemm_fit pid_sopdt_basis_gemm_fit; do cd prediction/ProcessControl/PIDModelFit/$op rm -rf build cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSOC_VERSION=Ascend910B1 cmake --build build -j 2 done 三个算子均编译通过,并完成 ACL smoke: text PidFopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidIpdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED PidSopdtBasisGemmFit smoke best_sse=[1, 12] best_k=[1.5, 2] best_idx=[2, 1] PASSED ### 4. 性能验证记录 Ascend 910B1 原型验证中,典型规模下 NPU cached 端到端路径相对 CPU 多线程完整 fit 有明显优势: | 模型 | 配置 | CPU 多线程完整 fit | NPU cached 端到端 | NPU cold 端到端 | |------|------|--------------------|-------------------|-----------------| | FOPDT | B=64,N=1024,M=256 | 9.22 ms | 0.43 ms | 0.87 ms | | IPDT | B=64,N=1024,M=256 | 9.64 ms | 0.40 ms | 0.63 ms | | SOPDT | B=64,N=1024,M=256 | 8.46 ms | 0.57 ms | 0.87 ms | | FOPDT | B=128,N=1024,M=512 | 31.55 ms | 0.99 ms | 1.02 ms | | IPDT | B=128,N=1024,M=512 | 32.63 ms | 0.64 ms | 1.30 ms | | SOPDT | B=128,N=1024,M=512 | 33.40 ms | 0.87 ms | 1.19 ms | 详细测试说明见 prediction/ProcessControl/PIDModelFit/docs/test_report.md。 ## Checklist - [x] 我的代码遵循这个项目的代码风格 - [x] 我已经自己测试过我的代码 - [x] 我已经更新了相应的文档 - [x] 我已经根据需要更新了对应的变更日志/测试记录 - [x] 我已经在标题中正确使用了类型标签 ## 其他信息 本 PR 的核心设计原则是:FOPDT/IPDT/SOPDT 保持工程独立,便于评审、验收、单独测试和后续分别优化;公共底座只复用等价数学逻辑,不影响算子边界。 See merge request: cann/mat-chem-sim-pred!20 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 | |
feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Co-authored-by: liuhaidong<aliutec@163.com> # message auto-generated for no-merge-commit merge: !21 merge devin/1781921853-pid-modelfit-ops into master feat(PIDModelFit): 新增 9个 PID 整定算子 + E2E 验证(系列共 12个,完整覆盖 PID 整定流程) Created-by: haikuo Commit-by: liuhaidong Merged-by: cann-robot Description: ## Summary 本次为 **PIDModelFit** 算子系列提交:当前正式口径共 **12 个 NPU 自定义算子**,其中包括前序已提交的 **3 个 *_basis_gemm_fit 模型辨识算子**,以及本轮新增并保留的 **9 个诊断、整定、候选仿真、特征提取和评估类算子**。这 12 个算子共同覆盖 PID 整定主流程:模型辨识 → 模型诊断 → PID 参数生成 → 候选闭环仿真/评分/选优 → 候选特征提取 → 控制性能与过程能力评估。 > 重点(committer 第一眼):本次正式合入范围已从早期探索口径收敛为 **12 个正式算子**。前序 3 个 *_basis_gemm_fit 辨识算子作为模型辨识基础能力保留,并补充 benchmark、docs/benchmark.md 与 README 描述;本轮新增并保留 9 个下游算子,补齐 PIDModelFit 从“能辨识模型”到“能诊断、能整定、能仿真选优、能验收评估”的完整工程链路。探索/历史原型算子不进入本次正式提交范围。 ## 算子清单(9 新 + 3 已有 = 12),按 PID 整定 6 阶段 1. **模型辨识**:pid_fopdt_basis_gemm_fit · pid_ipdt_basis_gemm_fit · pid_sopdt_basis_gemm_fit 2. **模型质量诊断**:pid_residual_diagnostics · pid_windowed_residual_diagnostics 3. **PID 参数生成**:pid_tuning_rule_batch(Ziegler-Nichols / IMC / Cohen-Coon) 4. **候选闭环仿真、评分与选优**:pid_fopdt_batch_rollout_score · pid_ipdt_batch_rollout_score · pid_sopdt_batch_rollout_score 5. **候选响应特征提取**:pid_step_response_features 6. **控制性能与过程能力评估**:pid_control_performance_metrics · pid_process_capability_metrics → 新增的 IPDT / SOPDT rollout 补齐了候选仿真阶段对 FOPDT / IPDT / SOPDT 三类模型的覆盖;三个 batch rollout 算子已融合候选特征、候选评分和 best 选择,直接输出每条回路的最优 PID 候选结果。 ## E2E 验证:算子有效且具备 NPU resident 链路价值(Ascend910B3 / node202 真编真跑) - **有效(精度)**:12/12 算子均提供 Python/CPU reference、精度测试或 NPU smoke/benchmark 入口;NPU 输出与 CPU reference 在 float32 容差内对齐。FOPDT 全链路 E2E 覆盖 fit -> tuning_rule -> fopdt_rollout -> performance_metrics,分阶段与 CPU reference 对齐,链路语义自洽。 - **高效(vs CPU 64 线程)**:模型辨识 pipeline 是最明确 NPU 价值点,MatMul + reduce resident e2e 约 28x-180x;三类 batch rollout 在典型候选规模下约 4x-7x;残差诊断、窗口残差、候选特征和指标类算子适合作为 NPU resident 后处理,避免中间轨迹回传 CPU。 - **工程定位清晰**:pid_tuning_rule_batch 算术强度较低,不作为单独性能卖点,但它支撑 E2E 中“模型参数 -> PID 候选”的 device 侧候选生成阶段;评估类算子推荐挂在 NPU resident 流水线后端使用。 ## 主要改动 - 9 个新增正式算子目录,均包含 op_host / op_kernel / examples / tests / docs / README 等标准交付件结构。 - 3 个前序 *_basis_gemm_fit 模型辨识算子作为基础能力保留,并补充 benchmark、README 和文档说明。 - common/ 提供 CPU / NumPy reference 与共享辅助实现。 - e2e/ 提供全链路验证驱动,包括 e2e_perf、e2e_orchestrator.py 和 build_e2e.sh。 - 顶层 docs/ 收敛为正式交付文档:design.md、test_report.md、pid_operator_catalog_by_purpose.md。 ## 验证环境 Ascend910B3,CANN toolkit,g++ 10.3.1 See merge request: cann/mat-chem-sim-pred!21 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |