后续版本废弃配置【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow以下参数在后续版本将废弃建议开发者不再使用。op_debug_level功能调试配置项算子debug功能开关。0不开启算子debug功能。1开启算子debug功能在训练脚本执行目录下的kernel_meta文件夹中生成TBE指令映射文件算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件用于后续工具进行AI Core Error问题定位。注意Ascend 950PR/Ascend 950DT不会生成TBE指定映射文件。2开启算子debug功能在训练脚本执行目录下的kernel_meta文件夹中生成TBE指令映射文件算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件并关闭ccec编译器的编译优化开关且打开ccec调试功能ccec编译器选项设置为-O0-g用于后续工具进行AI Core Error问题定位。注意Ascend 950PR/Ascend 950DT不会生成TBE指定映射文件。3不开启算子debug功能且在训练脚本执行目录下的kernel_meta文件夹中保留.o和.json文件。4不开启算子debug功能在训练脚本执行目录下的kernel_meta文件夹中保留.o算子二进制文件和.json文件算子描述文件生成TBE指令映射文件算子cce文件*.cce和UB融合计算描述文件{$kernel_name}_compute.json。Ascend 950PR/Ascend 950DT不会生成TBE指定映射文件和UB融合计算描述文件。注意当该参数取值为0时同时又配置了“op_debug_config”参数则训练执行时仍会在当前执行路径下生成算子编译目录kernel_meta目录中生成的内容以“op_debug_config”配置为准。训练执行时建议配置为0或3。如果需要进行问题定位再选择调试开关选项1和2是因为加入了调试功能后会导致网络性能下降。配置为2即开启ccec编译选项的场景下不能与“op_debug_config”中的“oom”同时使用会导致AI Core Error报错报错信息示例如下。...there is an aivec error exception, core id is 49, error code 0x4 ...配置为2即开启ccec编译选项的场景下会增大算子Kernel*.o文件的大小。动态shape场景下由于算子编译时会遍历可能存在的所有场景最终可能会导致由于算子Kernel文件过大而无法进行编译的情况此种场景下建议不要配置为2。 由于算子kernel文件过大而无法编译的日志显示如下message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o:(xxxx)当该参数取值不为0时可通过“debug_dir”参数指定调试相关过程文件的存放路径。该参数取值为0同时设置了NPU_COLLECT_PATH环境变量的场景执行命令当前路径下仍旧会生成算子编译目录kernel_meta若设置了ASCEND_WORK_PATH环境变量则在该环境变量指定路径下生成kernel_meta。关于环境变量的详细说明可参见《环境变量参考》。debug功能开关打开场景下若模型中含有如下通算融合算子算子编译目录kernel_meta中不会生成下述算子的*.o、*.json、*.cce文件。MatMulAllReduce MatMulAllReduceAddRmsNorm AllGatherMatMul MatMulReduceScatter AlltoAllAllGatherBatchMatMul BatchMatMulReduceScatterAlltoAll默认值为空代表不使能此配置。配置示例custom_op.parameter_map[op_debug_level].i 0enable_data_pre_proc性能调优配置项用于配置GetNext算子是否下沉到NPU侧执行。GetNext算子下沉是使能训练迭代循环下沉的必要条件。True下沉GetNext算子下沉的前提是必须使用TensorFlow Dataset方式读数据。False默认值不下沉。配置示例custom_op.parameter_map[enable_data_pre_proc].b Truevariable_format_optimize性能调优配置项用户配置是否开启变量格式优化。True开启。False关闭。为了提高训练效率在网络执行的变量初始化过程中将变量转换成更适合在AI处理器上运行的数据格式例如进行NCHW到NC1HWC0的数据格式转换。但在用户特殊要求场景下可以选择关闭该功能开关。默认值为空代表不使能此配置。配置示例custom_op.parameter_map[variable_format_optimize].b Trueop_select_implmode性能调优配置项NPU内置算子有高精度和高性能实现方式用户可以通过该参数配置模型编译时选择哪种算子。取值包括high_precision表示算子选择高精度实现。高精度实现算子是指在fp16输入的情况下通过泰勒展开/牛顿迭代等手段进一步提升算子的精度。high_performance表示算子选择高性能实现。高性能实现算子是指在fp16输入的情况下不影响网络精度前提的最优性能实现。默认值为空代表不使能此配置。配置示例custom_op.parameter_map[op_select_implmode].s tf.compat.as_bytes(high_precision)optypelist_for_implmode性能调优配置项列举算子optype的列表该列表中的算子使用op_select_implmode参数指定的模式当前支持的算子为Pooling、SoftmaxV2、LRN、ROIAlign多个算子以英文逗号分隔。该参数需要与op_select_implmode参数配合使用例如op_select_implmode配置为high_precision。optypelist_for_implmode配置为Pooling。默认值为空代表不使能此配置。配置示例custom_op.parameter_map[optypelist_for_implmode].s tf.compat.as_bytes(Pooling,SoftmaxV2)dynamic_input当前网络的输入是否为动态输入取值包括True动态输入。False默认值固定输入。配置示例custom_op.parameter_map[dynamic_input].b Truedynamic_graph_execute_mode对于动态输入场景需要通过该参数设置执行模式即dynamic_input为True时该参数生效。取值为dynamic_execute动态图编译模式。该模式下获取dynamic_inputs_shape_range中配置的shape范围进行编译。配置示例custom_op.parameter_map[dynamic_graph_execute_mode].s tf.compat.as_bytes(dynamic_execute)dynamic_inputs_shape_range动态输入的shape范围。例如全图有3个输入两个为dataset输入一个为placeholder输入则配置示例为custom_op.parameter_map[dynamic_inputs_shape_range].s tf.compat.as_bytes(getnext:[128 ,3~5, 2~128, -1],[64 ,3~5, 2~128, -1];data:[128 ,3~5, 2~128, -1])使用注意事项使用此参数时不支持将常量设置为用户输入。dataset输入固定标识为“getnext”placeholder输入固定标识为“data”不允许用其他表示。动态维度有shape范围的用波浪号“~”表示固定维度用固定数字表示无限定范围的用-1表示。对于多输入场景例如有三个dataset输入时如果只有第二个第三个输入具有shape范围第一个输入为固定输入时仍需要将固定输入shape填入custom_op.parameter_map[dynamic_inputs_shape_range].s tf.compat.as_bytes(getnext:[3,3,4,10],[-1,3,2~1000,-1],[-1,-1,-1,-1])对于标量输入也需要填入shape范围表示方法为[][]前不允许有空格。若网络中有多个getnext输入或者多个data输入需要分别保持顺序关系例如若网络中有多个dataset输入def func(x): x x 1 y x 2 return x,y dataset tf.data.Dataset.range(min_size, max_size) dataset dataset.map(func)网络的第一个输入是x假设shape range为[3~5]第二个输入是y假设shape range为[3~6]配置到dynamic_inputs_shape_range中时需要保持顺序关系即custom_op.parameter_map[dynamic_inputs_shape_range].s tf.compat.as_bytes(getnext:[3~5],[3~6])若网络中有多个placeholder输入如果不指定placeholder的name例x tf.placeholder(tf.int32) y tf.placeholder(tf.int32)placeholder的顺序和脚本中定义的位置一致网络的第一个输入是x假设shape range为[3~5]第二个输入是yshape range为[3~6]配置到dynamic_inputs_shape_range中时需要保持顺序关系即custom_op.parameter_map[dynamic_inputs_shape_range].s tf.compat.as_bytes(data:[3~5],[3~6])如果指定了placeholder的name例x tf.placeholder(tf.int32, nameb) y tf.placeholder(tf.int32, namea)则网络输入的顺序按name的字母序排序网络的第一个输入是y假设shape range为[3~6]第二个输入是xshape range为[3~5]配置到dynamic_inputs_shape_range中时需要保持顺序关系即custom_op.parameter_map[dynamic_inputs_shape_range].s tf.compat.as_bytes(data:[3~6],[3~5])注意当存在不同输入shape的子图时由于dynamic_inputs_shape_range是针对于单张图的配置属性因此可能会导致执行异常建议使用set_graph_exec_config以支持动态输入场景。若网络脚本中未指定placeholder的name则placeholder会按照会如下格式命名xxx_0, xxx_1, xxx_2, …… 其中下划线后为placeholder在网络脚本中的定义顺序索引placeholder会按照此索引的字母顺序进行排布所以当placeholder的个数大于10时则排序为“xxx_0 - xxx_10 - xxx_2 - xxx_3”网络脚本中定义索引为10的placeholder排在了索引为2的placeholder前面导致定义的shape range与实际输入的placeholder不匹配。为避免此问题当placeholder的输入个数大于10时建议在网络脚本中指定placeholder的name则placeholder会以指定的name进行命名实现shape range与placeholder name的关联。该参数不允许与dynamic_dims同时使用若同时使用dynamic_dims优先级更高此参数不生效。graph_memory_max_size历史版本该参数用于指定网络静态内存和最大动态内存的大小。当前版本该参数不再生效。系统会根据网络使用的实际内存大小动态申请。variable_memory_max_size历史版本该参数用于指定变量内存的大小。当前版本该参数不再生效。系统会根据网络使用的实际内存大小动态申请。【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考