CANN算子库静态Kernel调优指南 算子调优【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docsDump算子信息。算子调优前需要先获取模型中算子信息统计文件*.json包括算子的shape、dtype、format等信息。目前支持两种方式Dump算子json文件请根据实际情况选择合适的方式。使用PyTorch的Python接口编程时可通过Ascend PyTorch Profiler接口dump算子json文件具体介绍参见《性能调优工具》中“性能数据其他采集方式 Ascend PyTorch Profiler”。在训练前开启扩展参数experimental_config中“算子信息统计功能”即参数record_op_args置为True。查看采集到的PyTorch训练性能数据结果文件。训练结束后Dump的算子信息统计文件默认在{worker_name}_{时间戳}_ascend_pt_op_args/{pid}目录下。使用acl接口时可通过aclopStartDumpArgs和aclopStopDumpArgs接口将算子信息统计文件Dump到指定目录下接口详见《Runtime运行时 API》中的“Dump配置”。编译静态Kernel包。在任意目录下以运行用户如HwHiAiUser身份执行如下命令进行算子编译默认静态编译命令样例op_compiler --op_params_dirdump_dir --soc_versionsoc_version --loginfo --job8 --outputoutput_dir调优编译命令样例op_compiler --op_params_dirdump_dir --soc_versionsoc_version --loginfo --job8 --compile_modetune --outputoutput_dir关键参数释义如下全量的参数说明可参考《算子编译工具》中“参数说明”章节请根据实际情况设置。--op_params_dir简写为-p必选Dump工具导出的统计数据所在的文件夹路径支持绝对和相对路径。--soc_version简写为-v执行算子编译功能时必选指定算子编译时AI处理器的型号。说明如果无法确定当前设备的soc_version则在安装NPU驱动包的服务器执行npu-smi info命令进行查询在查询到的“Name”前增加Ascend信息例如“Name”对应取值为_xxxyy_实际配置的soc_version值为Ascend_xxxyy_。--log简写为-l可选设置算子编译过程中日志的级别。可设置为debug/info/warning/error/null级别默认为null。--job简写为-j可选设置编译时工作进程数。最小取值为1默认为16。--compile_mode简写为-m可选取值支持配置为tune代表开启调优模式执行调优编译流程。不使用该参数的情况下执行默认编译流程。--output简写为-o可选编译输出的安装包路径名称如xxx/xxx/xxx.run支持相对路径和绝对路径。不输入路径的情况下在当前路径下生成不输入安装包名称的情况下安装包默认命名为“static_kernel_${datetime}_${pid}.run”。当出现类似如下回显信息代表编译成功。generate run package static_kernel_${datetime}_${pid}.run success说明算子编译工具提供了**--count**参数和-p参数配合使用用于统计-p参数指定的目录下算子信息统计json文件的数目。 样例如下op_compiler -p dump_dir --count只有动态shape才能dump出算子统计信息安装静态Kernel包后静态Kernel包对应算子的统计信息就不会dump出来。所以在安 装静态Kernel包后如果网络有调整可以通过调整前后dump的json文件的数量来判断静态Kernel包和当前网络是否匹配。 通过调整网络前后各执行一次dump操作并通过--count命令来统计dump生成的json文件的数目如果调整后的数目比调整前 大则说明静态Kernel包中有部分算子不再匹配当前网络此时开发者可以卸载静态Kernel包重新走dump流程编译安装新的静态Kernel包。仍使用当前静态Kernel包此时需要注意不匹配的算子会走动态流程得不到性能收益。不支持在dump_dir下执行编译命令。安装静态Kernel包。进入static_kernel_${datetime}_${pid}.run包所在目录以运行用户如HwHiAiUser身份运行run包./static_kernel_${datetime}_${pid}.run当出现如下回显信息代表安装成功。Verifying archive integrity... 100% SHA256 checksums are OK. All good. Uncompressing STATIC KERNEL RUN PACKAGE 100%目前暂不支持指定目录安装run包默认安装到{install_path}/opp/static_kernel路径下其中${install_path}为CANN软件安装后文件存储路径请根据实际情况替换该路径。说明run包默认安装路径${install_path}/opp/static_kernel的默认权限为770本用户、同组用户访问。如果权限不足导致静态Kernel包安装失败可联系CANN软件包的安装用户修改static_kernel目录权限来解决。run包安装后的目录结构样例如下|-- ${install_path}/opp/static_kernel |-- ai_core |-- config |-- ascendxxxx |-- binary_info_config.json # 全量静态Kernel包的总索引 |-- config.ini # 记录安装顺序的配置文件。 |-- static_kernel_250924103634186357_988879 # 时间戳为“250924103634186357”且进程号为988879的静态Kernel文件 |-- ascendxxxx | |-- Add # 算子二进制目录 | |-- static_kernel_Add_float16_NCL_xxxx_d0.json | |-- static_kernel_Add_float16_NCL_xxxx_d1.json | |-- static_kernel_Add_float16_NCL_xxxx_d0.o | |-- static_kernel_Add_float16_NCL_xxxx_d1.o | |-- xxxx | |-- static_kernel_xxx.json | |-- static_kernel_xxx.o | |-- ...... |-- config # 单个静态Kernel包索引 | |-- ascendxxxx | |-- binary_info_config.json |-- scripts # 工具涉及的通用脚本 | |-- ...... |-- uninstall.sh # 单包卸载脚本 |-- static_kernel_xxxx # 不同时间戳的静态Kernel文件 |-- uninstall.sh # 全量卸载脚本 |-- version.info # 版本信息说明支持多个Kernel包安装如果多个包中存在相同的算子Kernel以后安装的Kernel包为准。可选当不再需要静态Kernel包时可以单包卸载或全量卸载。单包卸载进入static_kernel_${datetime}_${pid}.run包的安装目录以运行用户如HwHiAiUser身份运行uninstall.sh。cd ${install_path}/opp/static_kernel/ai_core/static_kernel_${datetime}_${pid} ./uninstall.sh卸载成功ai_core目录下static_kernel_${datetime}_${pid}文件夹将会被删除。全量卸载进入${install_path}/opp/static_kernel/ai_core目录下以运行用户如HwHiAiUser身份运行uninstall.sh。cd ${install_path}/opp/static_kernel/ai_core/ ./uninstall.sh卸载成功ai_core目录下所有内容将会被删除所有已安装的Kernel包均被卸载。【免费下载链接】docs该仓库用于维护cann公共文档项目地址: https://gitcode.com/cann/docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

游戏大厂实战:一次无竞争的锁 vs 一次有竞争的锁,到底差多少?(定量对比+案例分析)

游戏大厂实战:一次无竞争的锁 vs 一次有竞争的锁,到底差多少?(定量对比+案例分析)

"加个锁保平安"是很多程序员的口头禅。但锁到底有多贵?无竞争和有竞争差多少倍?本文用真实数据+可运行的Benchmark代码,带你把这笔账算清楚。看完你会对每一个 lock 心生敬畏。 一、开篇:为什么游戏程序员必须懂锁的成本? 游戏是极致的实时系统——16.6ms 内必…

2026/8/27 6:42:48
Matlab多元线性回归实战:从regress函数到模型诊断与变量选择

Matlab多元线性回归实战:从regress函数到模型诊断与变量选择

1. 从“抄作业”到“懂原理”:多元线性回归的实战心法如果你正在准备数学建模比赛,或者手头有一堆数据想找出变量之间的关系,那么“多元线性回归”这个名字你一定不陌生。它几乎是所有数据分析、预测建模的入门必修课,也是Matlab这…

2026/8/27 6:42:48
蓝桥杯单片机国赛:嵌入式系统综合设计与实战精讲

蓝桥杯单片机国赛:嵌入式系统综合设计与实战精讲

1. 项目概述:蓝桥杯单片机国赛的挑战与价值如果你是一名电子信息、自动化或计算机相关专业的学生,或者是一位嵌入式开发的入门爱好者,那么“蓝桥杯”这个名字你一定不陌生。而其中的“单片机设计与开发”赛道,尤其是其终极舞台——…

2026/8/27 6:42:48
蓝桥杯单片机国赛避坑指南:PCF8591与NE555实战细节解析

蓝桥杯单片机国赛避坑指南:PCF8591与NE555实战细节解析

1. 从“国赛”到“注意点”:一次复盘的价值第九届蓝桥杯单片机国赛,对于很多电子、自动化相关专业的同学来说,是一个绕不开的里程碑。它不像日常的课程设计那样可以慢慢调试,也不像一些商业项目有明确的文档支持。国赛的赛题&…

2026/8/27 6:42:48
BERT+BiLSTM+CRF实体识别到知识图谱与问答系统实战

BERT+BiLSTM+CRF实体识别到知识图谱与问答系统实战

简介:自然语言处理中,从非结构化文本到结构化知识的转化,是构建智能问答系统的核心挑战。实体识别(NER)作为关键前置步骤,BERTBiLSTMCRF的经典组合通过语义编码、序列建模与标签约束,在工程实践…

2026/8/27 6:42:48
基于机械臂与视觉识别的魔方自动复原机器人:原理与实现

基于机械臂与视觉识别的魔方自动复原机器人:原理与实现

1. 项目背景与整体思路1.1 想做一台魔方机器人的原因魔方机器人这件事,我在心里惦记了很久。最早看到别人用机械臂拧魔方,觉得挺炫,但真正让我决定动手的,是另一个更朴素的想法:每次自己玩魔方只能拧到一面&#xff0c…

2026/8/27 6:37:48