下载
EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

算子编译生成kernel包

  1. 准备Dump的算子信息统计文件。目前支持两种方式Dump算子json文件,请根据实际情况选择合适的方式。
    • 使用PyTorch的Python接口编程时,可通过Ascend PyTorch Profiler接口dump算子json文件,具体请参考性能调优工具指南中“性能分析(PyTorch训练/在线推理)”章节。
      1. 使用Ascend PyTorch Profiler接口开启PyTorch训练时的性能数据采集。

        在训练前,开启扩展参数experimental_config中“算子信息统计功能”,即参数record_op_args置为True。

      2. 查看采集到的PyTorch训练性能数据结果文件。

        训练结束后,Dump的算子信息统计文件默认在{worker_name}_{时间戳}_ascend_pt_op_args/{pid}目录下。

    • 使用AscendCL的C++接口编程时,可通过aclopStartDumpArgs和aclopStopDumpArgs接口将算子信息统计文件Dump到指定目录下。接口的具体用法参考CANN AscendCL应用软件开发指南(C&C++)“AscendCL API参考 > 单算子执行> 单算子模型执行”章节。
  2. 在任意目录下,以运行用户(如HwHiAiUser)身份执行如下命令,进行算子编译:

    默认模式编译命令样例:

    op_compiler --op_params_dir=<dump_dir>  --soc_version=<soc_version> --log=info --job=128 --output=<output_dir>
    op_compiler -p <dump_dir>  -v <soc_version> -l info -j 128 -o <output_dir>

    调优模式编译命令样例:

    op_compiler --op_params_dir=<dump_dir>  --soc_version=<soc_version> --log=info --job=128 --compile_mode=tune --output=<output_dir>
    op_compiler -p <dump_dir>  -v <soc_version> -l info -j 128 -m tune -o <output_dir>
    • --op_params_dir:简写为-p,必选,Dump工具导出的统计数据所在的文件夹路径,支持绝对和相对路径。
    • --soc_version:简写为-v,执行算子编译功能时必选,配置为算子编译时AI处理器的型号。

      如果无法确定当前设备的soc_version,则在安装NPU驱动包的服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的soc_version值为Ascendxxxyy

    • --log:简写为-l,可选,设置算子编译过程中日志的级别。可设置为debug/info/warning/error/null级别,默认为null。
    • --job:简写为-j,可选,设置编译时工作进程数。最小取值为1,默认为16。
    • --compile_mode:简写为-m,可选,取值支持配置为tune,代表开启调优模式,执行调优编译流程。不使用该参数的情况下,执行默认编译流程。
    • --output:简写为-o,可选,编译输出的安装包路径+名称,如xxx/xxx/xxx.run,支持相对路径和绝对路径。不输入路径的情况下,在当前路径下生成;不输入安装包名称的情况下,安装包默认命名为“static_kernel_${datatime}.run”。

    工具支持的全量参数的具体说明可参见参数说明

    当出现类似如下回显信息代表编译成功。

    generate run package static_kernel_${datatime}.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包,此时需要注意不匹配的算子会走动态流程,得不到性能收益。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词