请在dump数据前,完成模型对应的应用工程的编译、运行,确保工程正常。
参考以下步骤进行离线模型dump操作:
{ "dump":{ "dump_list":[ { "model_name":"ResNet-101" }, { "model_name":"ResNet-50", "layer":[ "conv1conv1_relu", "res2a_branch2ares2a_branch2a_relu", "res2a_branch1", "pool1" ] } ], "dump_path":"$HOME/output", "dump_mode":"output", "dump_op_switch":"off", "dump_data":"tensor" } }
单算子Dump配置示例:
{ "dump":{ "dump_path":"output", "dump_list":[], "dump_op_switch":"on", "dump_data":"tensor" } }
配置项 |
参数说明 |
---|---|
dump_list |
(必选)待dump数据的整网模型列表。 创建模型dump配置信息,当存在多个模型需要dump时,需要每个模型之间用英文逗号隔开。 在单算子执行场景下,dump_list为空。 |
model_name |
模型名称,各个模型的model_name值须唯一。
|
layer |
IO性能相对较差时,可能会出现由于数据量过大导致执行超时,所以不建议全量dump,请指定算子进行dump。通过该字段可以指定需要dump的算子名,支持指定为ATC模型转换后的算子名,也支持指定为转换前的原始算子名,配置时需注意:
|
dump_path |
(必选)dump数据文件存储到运行环境的目录,该目录需要提前创建且确保安装时配置的运行用户具有读写权限。
支持配置绝对路径或相对路径:
|
dump_mode |
dump数据模式。
|
dump_level |
dump数据级别,取值:
默认配置下,dump数据文件会比较多,例如有一些aclnn开头的dump文件,若用户对dump性能有要求或内存资源有限时,则可以将该参数设置为op级别,以便提升dump性能、精简dump数据文件数量。
说明:
算子是一个运算逻辑的表示(如加减乘除运算),kernel是运算逻辑真正进行计算处理的实现,需要分配具体的计算设备完成计算。 |
dump_op_switch |
单算子模型dump数据开关。
|
dump_step |
指定采集哪些迭代的Dump数据。推理场景无需配置。 不配置该参数,默认所有迭代都会产生dump数据,数据量比较大,建议按需指定迭代。 多个迭代用“|”分割,例如:0|5|10;也可以用“-”指定迭代范围,例如:0|3-5|10。 配置示例: { "dump":{ "dump_list":[ ...... ], "dump_path":"$HOME/output", "dump_mode":"output", "dump_op_switch":"off" "dump_step": "0|3-5|10" } }
说明:
训练场景下,若通过acl.json中的dump_step参数指定采集哪些迭代的Dump数据,又同时在GEInitialize接口中配置了ge.exec.dumpStep参数(该参数也用于指定采集哪些迭代的Dump数据),则以最后配置的参数为准。GEInitialize接口的详细介绍请参见《Ascend Graph开发指南》。 |
dump_data |
算子dump内容类型,取值:
通常dump数据量太大并且耗时长,可以先dump算子统计数据,根据统计数据识别可能异常的算子,然后再dump算子数据。 模型Dump场景下,会根据dump_mode处的配置统计算子输入或算子输出或算子输入&输出的信息。 |
工程运行完毕后,可以在运行环境查看到生成的dump数据文件。生成的路径及格式说明:
{dump_path}/{time}/{deviceid}/{model_name}/{model_id}/{data_index}/{dump文件} 单算子模型dump时为{dump_path}/{time}/{deviceid}/{dump文件}
路径key |
说明 |
备注 |
---|---|---|
dump_path |
acl.json中配置的dump数据文件存储目录。 |
- |
time |
dump数据文件落盘的时间。 |
格式为:YYYYMMDDHHMMSS |
deviceid |
Device设备ID号。 |
- |
model_name |
模型名称。 |
如果model_name出现了“.”、“/”、“\”、空格时,转换为下划线表示。 |
model_id |
模型ID号。 |
- |
data_index |
针对每个Task ID执行的次数维护一个序号,从0开始计数,该Task每dump一次数据,序号递增1。 |
- |