Dynamo导图功能

功能简介

离线推理场景下可通过dynamo_export接口,导出TorchAir生成的离线图(air格式)。

导出的推理模型不再依赖PyTorch框架,可直接由CANN软件栈加载执行,减少了框架调度带来的性能损耗,方便在不同的部署环境上移植。

使用约束

使用方法

dynamo_export接口原型定义如下,详细的参数说明参见dynamo_export

def dynamo_export(*args, model: torch.nn.Module, export_path: str = "export_file", export_name: str = "export", dynamic: bool = False, config=CompilerConfig(), **kwargs)

关键参数说明如下:

导图功能支持在单卡和多卡场景下导图,且支持导出的计算图携带allreduce等通信类算子,导图结果参见产物说明,dynamo_export接口的调用示例参见使用示例

产物说明

dynamo_export导图结果文件名缺省为"export_file",支持用户自定义,产物目录如下:

└── export_file                         // 导出的文件夹,可自定义
    ├── dynamo.pbtxt                    // 导出的模型信息(可读格式)
    ├── export.air                      // 导出的模型文件(不可读),文件名缺省值为“export”
    ├── weight_xx                       // 导出的权重文件
    ├── ......                          
    ├── model_relation_config.json      // 使能auto_atc_config_generated生成的文件
    └── numa_config.json                // 使能auto_atc_config_generated生成的文件

对于导出的权重文件,其可能直接存入export.air,也可能单独存在weight_xx文件中。

  • 当模型权重参数量不超过(2G-200MB)时,直接保存在export.air文件中,而权重存储路径、dtype等信息会被记录在dynamo.pbtxt的Const节点中。
  • 当模型权重参数量超过(2G-200MB)时,不存入export.air文件,会在export_path路径中自动生成权重文件,(如多卡场景下dynamo export示例中p1、p2文件,文件个数取决于网络中权重的定义)。同时权重存储路径、dtype等信息会被记录在dynamo.pbtxt的FileConstant节点中。

对于export.air文件,ATC工具支持转换为可执行的*.om模型文件(CANN能加载运行的格式),用户按需使用。命令形如:

1
atc --model=/export_file/export.air --framework=1 --output=/export_file/offline_module --soc_version=<soc_version>

详细工具操作参见CANN ATC离线模型编译工具用户指南

使用示例