--op_select_implmode
功能说明
选择算子是高精度实现还是高性能实现。
高精度是指在fp16输入的情况下,通过泰勒展开/牛顿迭代等手段进一步提升算子的精度;高性能是指在fp16输入的情况下,不影响网络精度前提的最优性能实现。
关联参数
无。
参数取值
参数值:
- high_precision:表示算子选择高精度实现。
- high_performance:表示算子选择高性能实现。
参数默认值:high_performance
推荐配置及收益
不建议用户使用--op_select_implmode参数设置算子的实现模式,该参数仅作为调测使用,推荐通过--op_precision_mode参数加载ini配置文件方式设置算子精度模式:
- 如果用户对性能有更高要求,则建议优先使用high_performance_for_all参数,若经过验证性能满足要求,则建议用户复制一份high_performance_for_all.ini文件,并且重命名为“网络模型.ini”文件,跟随网络使用,不同网络模型使用不同的ini文件,后续模型转换时,可以直接使用--op_precision_mode参数加载保存的“网络模型.ini”配置文件。
- 如果用户对精度有更高要求,则建议优先使用high_precision_for_all参数,若经过验证精度满足要求,则建议用户复制一份high_precision_for_all.ini文件,并且重命名为“网络模型.ini”文件,跟随网络使用,不同网络模型使用不同的ini文件,后续模型转换时,可以直接使用--op_precision_mode参数加载保存的“网络模型.ini”配置文件。
- 如果用户在使用high_performance_for_all时,虽然性能得到很大的提升,但是发现精度不满足要求,发现是由于xxx算子使用了高性能模式引起的,则需要复制一份high_performance_for_all.ini文件,重命名为"网络模型.ini"文件,并将文件中该xxx算子的实现模式调整为高精度模式,后续模型转换时,直接使用--op_precision_mode参数加载“网络模型.ini”配置文件。
- 如果用户在使用high_precision_for_all时,虽然精度得到很大的提升,但是发现性能下降较厉害,发现是由于xxx算子使用了高精度模式引起的,则需要复制一份high_precision_for_all.ini文件,重命名为"网络模型.ini"文件,并将文件中该xxx算子的实现模式调整为高性能模式,后续模型转换时,直接使用--op_precision_mode参数加载“网络模型.ini”配置文件。
high_*.ini文件中算子的实现模式以all_ops_impl_mode.ini文件(路径为${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/impl_mode)所列出的为准,不在该文件中的实现模式不支持配置。
上述路径中的${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
示例
--op_select_implmode=high_precision
依赖约束
使用约束:
--op_select_implmode参数表示设置所有算子的高精度或高性能模式,如果算子实现了高精度和高性能,则运行时选择--op_select_implmode参数指定的模式;如果算子只实现了一种,则按照算子实现的方式运行,例如:
某个算子当前只支持高精度,而--op_select_implmode设置为高性能,则--op_select_implmode参数对于该算子不生效,使用该算子当前实现的高精度方式运行。
父主题: 高级功能