下载
EN
注册

--modify_mixlist

功能说明

混合精度场景下,修改算子使用的混合精度黑白灰名单,自行指定哪些算子允许降精度,哪些算子不允许降精度。

黑白灰名单,可从“${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/xxx/aic-xxx-ops-info.json”内置优化策略文件中查看“precision_reduce”参数下的flag参数值(其中,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Ascend-cann-toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/ascend-toolkit/latest。xxx请根据实际产品型号进行选择。):

  • 若取值为true(白名单),表示混合精度模式下,允许降低精度。
  • 若取值为false(黑名单),表示混合精度模式下,不允许降低精度。
  • 不配置该参数(灰名单),表示混合精度模式下,当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。

关联参数

开启混合精度方式:

参数取值

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

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

参数值约束

推荐配置及收益

无。

示例

黑白灰名单查询示例如下,flag参数值为true表示白名单,为false表示黑名单,不配置flag参数表示灰名单:

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

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

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

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

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

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

  • 对于只从黑/白名单中删除,而不添加到白/黑名单的场景,系统会将该算子添加到灰名单中,配置示例如下(例如,从白名单删除某个算子):
    1
    2
    3
    4
    5
    {
      "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 推理系列产品

Atlas 训练系列产品

Atlas 200I/500 A2 推理产品

Atlas A2 训练系列产品/Atlas 800I A2 推理产品

依赖约束

无。