文档
注册

--modify_mixlist

功能说明

混合精度场景下,修改算子使用混合精度黑白灰名单。

  • 白名单:表示混合精度模式下,允许将当前float32类型的算子,降低精度到float16。
  • 黑名单:表示混合精度模式下,不允许将当前float32类型的算子降低精度到float16,相应算子仍旧使用float32精度。
  • 灰名单:表示混合精度模式下,当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。

关联参数

开启混合精度方式:

  • --precision_mode参数设置为allow_mix_precision、allow_mix_precision_fp16、allow_mix_precision_bf16(仅Atlas A2训练系列产品场景支持此配置)。
  • --precision_mode_v2参数设置为mixed_float16、mixed_bfloat16(仅Atlas A2训练系列产品场景支持此配置),与--precision_mode参数不能同时配置,建议使用--precision_mode_v2

混合精度场景下网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16;而使用--modify_mixlist参数后,用户可以在内置优化策略基础上进行调整,自行指定哪些算子允许降精度,哪些算子不允许降精度。

参数取值

参数值:混合精度名单路径以及文件名。

参数值格式:路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、短横线(-)、句点(.)、中文汉字。

参数值约束

推荐配置及收益

无。

示例

系统内置算子是否在黑名单、白名单或灰名单中,可从“OPP安装目录/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json”文件中查询每个算子的precision_reduce下的flag参数值,flag参数值为true表示白名单,为false表示黑名单,不配置flag参数表示灰名单,查询示例如下:

"Conv2D":{
    "precision_reduce":{
        "flag":"true"
}

混合精度名单样例如下,ops_info.json为文件名示例OpTypeAOpTypeBOpTypeCOpTypeD为算子示例

{
  "black-list": {                  // 黑名单
     "to-remove": [                // 黑名单算子转换为灰名单算子,配置该参数时,请确保被转换的算子已经存在于黑名单中
     "OpTypeA"
     ],
     "to-add": [                   // 白名单或灰名单算子转换为黑名单算子
     "OpTypeB"
     ]
  },
  "white-list": {                  // 白名单
     "to-remove": [                // 白名单算子转换为灰名单算子,配置该参数时,请确保被转换的算子已经存在于白名单中
     "OpTypeC"
     ],
     "to-add": [                   // 黑名单或灰名单算子转换为白名单算子
     "OpTypeD"
     ]
  }
}
  • 假设算子A默认在白名单中,如果您希望将该算子配置为黑名单算子,则配置示例和系统处理逻辑为:
    1. 将该算子添加到黑名单中:
      {
        "black-list": { 
           "to-add": [A]
        }
      }

      则系统会将该算子从白名单中删除,并添加到黑名单中,最终该算子在黑名单中。

    2. 将该算子从白名单中删除,同时添加到黑名单中:
      {
        "black-list": {
           "to-add": [A]
        }
        "white-list": {
           "to-remove": [A]
        }
      }

      则系统会将该算子从白名单中删除,并添加到黑名单中,最终该算子在黑名单中。

  • 对于只从黑/白名单中删除,而不添加到白/黑名单的场景,系统会将该算子添加到灰名单中,配置示例如下(例如,从白名单删除某个算子):
    {
      "white-list": {
         "to-remove": [A]
      }
    }

    则系统会将该算子从白名单中删除,然后添加到灰名单中,最终该算子在灰名单中。

将配置好的ops_info.json文件上传到ATC工具所在服务器任意目录,例如上传到$HOME/module,使用示例如下:

--precision_mode=allow_mix_precision  --modify_mixlist=$HOME/module/ops_info.json

支持的型号

Atlas 200/300/500 推理产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas 训练系列产品

Atlas 200/500 A2推理产品

Atlas A2训练系列产品

依赖约束

无。

搜索结果
找到“0”个结果

当前产品无相关内容

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