如何判断调优是否收敛?BO迭代收敛曲线与性能分布图自动可视化的完整教程

📅 发布时间:2026/9/25 15:09:33
如何判断调优是否收敛?BO迭代收敛曲线与性能分布图自动可视化的完整教程
如何判断调优是否收敛BO迭代收敛曲线与性能分布图自动可视化的完整教程【免费下载链接】Simulation-of-Microscopic-Typical-Matrix-Computation-Patterns项目地址: https://gitcode.com/SEU-TLab/Simulation-of-Microscopic-Typical-Matrix-Computation-Patterns在昇腾 NPU 上对 GEMM 算子做贝叶斯优化Bayesian Optimization简称 BO调参时新手最常卡住的问题只有一个调优到底收敛了没有还要不要继续跑AutoTuner-for-Ascend-GEMM 项目给出了完整答案——它内置了一套自动可视化机制能把每次迭代实测到的 TFLOPS 自动整理成BO 迭代收敛曲线和性能分布直方图让是否收敛从凭感觉变成看图表。这篇教程带你读懂这两张图、掌握收敛判断标准并学会一键生成它们。 为什么 BO 调优必须判断收敛贝叶斯优化不是跑满次数就完事。它的每一轮迭代都需要JIT 重新编译算子 真实上板执行在昇腾硬件上单次评估成本很高。如果收敛判断失误要么白白浪费算力要么错过最优配置。先看背景GEMM 在 NPU 上的性能取决于数据从 DRAM → L2 → L1 → L0 这一条内存通路上的搬运与计算是否匹配而分块大小Tile M/N/K正是控制这条通路效率的关键旋钮正因如此bo_tuner.py 把tile_m、tile_n、l1_k、l0_k以及 5 个指令级开关Unit / Shuffle_K / ABBA / Swizzle共9 维离散参数全部纳入搜索空间组合数量巨大——手动穷举不现实只能靠 BO 高效逼近也就必须可靠地判断何时该停。 收敛曲线判读3 个信号判断是否收敛收敛曲线是整个 BO 调优的心电图。它由三组元素构成plot_bo_analysis.py 会自动把它们全部画出来灰色散点每一轮采样到的配置实测性能红色 ×编译或执行失败的配置记录为 0不会污染高斯过程模型蓝色阶梯线Best-So-Far 曲线——截至第 N 轮为止发现过的最高性能这是判断收敛的核心依据。对照这张图记住 3 个判读信号阶梯是否停止抬升曲线前期快速跳变234 → 266 → 308 TFLOPS说明 BO 还在发现新的性能高原当后段变成平线图中 35 轮后稳定在 350 TFLOPS说明搜索空间里已经没有更高区域了。跳变间隔是否拉长每次性能跃升之间隔的迭代数越来越长意味着采集函数EI已把高潜力区域翻遍这是典型的收敛前兆。散点是否全部沉到蓝线之下当灰色散点再也无法触及甚至超过蓝线说明新采样已不再产生增益。 实操建议当连续 10 轮左右 Best-So-Far 零增长就可以放心停下了不必硬跑满--max_iter。 性能分布直方图均值与极值的差距说明什么收敛曲线回答有没有涨性能分布直方图回答涨得离天花板还有多远。这张图把全部成功采样的配置按 TFLOPS 分箱统计并叠加两条关键虚线绘图逻辑红色虚线Best最优配置性能本例为350.0 TFLOPS绿色虚线Mean全部有效配置的平均值本例为208.1 TFLOPS。判读要点Best 远离 Mean说明该问题好配置是稀有的尖峰BO 的价值就在于精准命中继续随机探索收益很低分布尾部贴近 Best直方图右尾若有配置逼近红线说明性能高原较宽可以适当多迭代几轮榨取剩余空间失败样本被剔除图中统计仅含成功配置失败率可结合运行日志单独评估。本项目的实测结果印证了这一点45 轮迭代中 34 轮成功最终配置达成350.7 TFLOPS、约 99.6% 硬件峰值效率见 example_config.json基本摸到了 Roofline 天花板——这就是收敛到位的完整证据链。⚙️ 一键生成 BO 可视化图表的完整步骤无需手动写绑图代码项目把记录—落盘—绘图做成了闭环第 1 步运行 BO 调优在昇腾 910B 环境CANN 8.2、已配置 CATLASS下cd AutoTuner-for-Ascend-GEMM/src python bo_tuner.py --matrix_size 4096 --max_iter 50 --seed 42运行结束后会自动落盘三类文件保存逻辑文件作用data/jit_best_config_v2.json最优参数 峰值 TFLOPS 效率data/log/jit_optimization_history_v2.json每轮完整历史含失败样本data/jit_convergence_v2.json逐轮 Best-So-Far 收敛数据第 2 步生成可视化图表python plot_bo_analysis.py脚本会把 bo_convergence_curve.png 和 bo_performance_distribution.png 输出到image/目录直接用于报告或论文佐证。 常用文件路径速查用途路径BO 搜索入口搜索空间与约束定义AutoTuner-for-Ascend-GEMM/src/bo_tuner.pyJIT 编译与上板测速引擎AutoTuner-for-Ascend-GEMM/src/jit_runner.py收敛曲线与分布图渲染脚本AutoTuner-for-Ascend-GEMM/src/plot_bo_analysis.py可调 GEMM 算子 C 模板AutoTuner-for-Ascend-GEMM/src/custom_kernel/tunable_gemm_template.cpp最优配置示例AutoTuner-for-Ascend-GEMM/data/example_config.json模块说明文档AutoTuner-for-Ascend-GEMM/README.mdPython 依赖清单AutoTuner-for-Ascend-GEMM/requirements.txt小结判断 BO 调优是否收敛记住一张双图检查表——收敛曲线看蓝线是否走平信号 1-3分布直方图看Best 与 Mean 的差距两者同时满足即可停止迭代、导出最优配置。AutoTuner-for-Ascend-GEMM 已把这套流程完全自动化你只需要读懂图。【免费下载链接】Simulation-of-Microscopic-Typical-Matrix-Computation-Patterns项目地址: https://gitcode.com/SEU-TLab/Simulation-of-Microscopic-Typical-Matrix-Computation-Patterns创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考