NPURunConfig构造函数

函数原型

def __init__(self,

iterations_per_loop=1,

profiling_config=None,

model_dir=None,

tf_random_seed=None,

save_summary_steps=0,

save_checkpoints_steps=None,

save_checkpoints_secs=None,

session_config=None,

keep_checkpoint_max=5,

keep_checkpoint_every_n_hours=10000,

log_step_count_steps=100,

distribute=None,

enable_data_pre_proc=True,

precision_mode=None,

enable_reduce_precision=False,

variable_format_optimize=True,

mix_compile_mode=False,

hcom_parallel=False,

graph_memory_max_size=None,

variable_memory_max_size=None,

auto_tune_mode=None,

dump_config=None,

stream_max_parallel_num=None,

is_tailing_optimization=False,

horovod_mode = False,

graph_run_mode = 1,

op_debug_level = 0,

enable_scope_fusion_passes = None,

enable_exception_dump = 0,

op_select_implmode=None,

optypelist_for_implmode=None,

dynamic_input_config=None,

aoe_mode=None,

work_path=None,

buffer_optimize=“l2_optimize”,

enable_small_channel=0,

fusion_switch_file=None,

enable_compress_weight=False,

compress_weight_conf=None,

op_compiler_cache_mode=None,

op_compiler_cache_dir=None,

debug_dir=None,

dynamic_input=False,

dynamic_graph_execute_mode="dynamic_execute",

dynamic_inputs_shape_range=None,

train_distribute=None,

eval_distribute=None,

local_rank_id=None,

local_device_list=None,

session_device_id=None,

distribute_config=None,

modify_mixlist=None,

op_precision_mode=None,

device_type,

hccl_timeout = None,

op_wait_timeout = None,

op_execute_timeout= None

)

功能说明

NPURunConfig类的构造函数,NPURunConfig类继承了RunConfig类,可以调用基类的原生接口。

使用约束

使用多Device执行训练的场景下,不支持使用按时间保存文件的参数save_checkpoints_secs。

参数说明

参数名

描述

NPURunConfig继承RunConfig的参数:

model_dir

保存模型路径。默认值:None。

如果NPURunConfig和NPUEstimator配置的model_dir不同,系统报错。

如果NPURunConfig和NPUEstimator仅一个接口配置model_dir,以配置的路径为准。

如果NPURunConfig和NPUEstimator均未配置model_dir,则系统在当前脚本执行路径创建一个model_dir_xxxxxxxxxx目录保存模型文件。

tf_random_seed

初始化变量的种子。默认值:None。

save_summary_steps

每隔多少step保存一次Summary。默认值:0。

该参数仅适用于iterations_per_loop=1的场景,iterations_per_loop>1时,可能无法按照配置的值保存,请参考“Log/Summary”专题实现信息保存。

save_checkpoints_steps

每隔多少step保存一次checkpoint。默认值:None。

  • 与save_checkpoints_secs不能同时配置。
  • 如果save_checkpoints_steps和save_checkpoints_secs都为None,则每隔100个step保存一次checkpoint。
  • iterations_per_loop>1的场景下,要求save_checkpoints_steps必须大于或等于iterations_per_loop,且是iterations_per_loop的整数倍,否则不会按照save_checkpoints_steps配置的值保存checkpoint数据。

如果用户只希望在某个device上保存checkpoint,而不希望在其他device上保存checkpoint数据,可以按照如下方法修改训练脚本。

TensorFlow原始代码:

self._classifier=tf.estimator.Estimator(
  model_fn=cnn_model_fn,
  model_dir=self._model_dir,
  config=tf.estimator.RunConfig(
      save_checkpoints_steps=50 if hvd.rank() == 0 else None,
      keep_checkpoint_max=1))

迁移后的代码:

self._classifier=NPUEstimator(
  model_fn=cnn_model_fn,
  model_dir=self._model_dir,
  config=tf.estimator.NPURunConfig(
      save_checkpoints_steps=50 if get_rank_id() == 0 else 0,
      keep_checkpoint_max=1))

save_checkpoints_secs

每隔多少秒保存一次checkpoint。默认值:None。

与save_checkpoints_steps不能同时配置。

session_config

设置session参数的ConfigProto格式对象。默认值:None。

keep_checkpoint_max

最大保存多少个checkpoint文件。默认值:5

keep_checkpoint_every_n_hours

保留N个小时的checkpoint文件。 默认值:10000,可有效禁用该功能。

如需使用该功能,keep_checkpoint_max需要配置足够大。

log_step_count_steps

每隔多少step,记录global step和loss值一次。默认值:100。

该参数仅适用于iterations_per_loop=1的场景,iterations_per_loop>1时,可能无法按照配置的值保存,请参考“Log/Summary”专题实现信息保存。

NPURunConfig不支持的参数:

train_distribute

指明分布式训练策略,分布式相关配置由experimental_distribute指定。

仅TF Adapte迁移工具会使用该参数,不建议用户单独使用。

device_fn

获取每个Operation的Device字段的function。

protocol

可选参数,指定启动Server时使用的协议。无表示默认为GRPC。

eval_distribute

是否分布式验证,分布式相关配置由experimental_distribute指定。

仅TF Adapte迁移工具会使用该参数,不建议用户单独使用。

experimental_distribute

分布式配置。

NPURunConfig新增参数:

iterations_per_loop

针对一次session.run调用,在昇腾AI处理器执行训练迭代的次数,默认为1,且用户设置的训练迭代总次数必须为iterations_per_loop的整数倍。昇腾AI处理器会运行iterations_per_loop指定迭代次数,然后再返回到Host侧,该参数可以减少Host与Device间的交互次数,缩短训练时长。

混合计算模式(mix_compile_mode为True)下,iterations_per_loop必须为1。

说明:当iterations_per_loop大于1时,由于循环下沉和LossScale溢出等问题,用户设置的训练迭代总次数和实际的迭代总次数可能会有差异。

配置示例:

config = NPURunConfig(iterations_per_loop=1000)

profiling_config

profiling开关,用户在创建NPURunConfig之前,可以实例化一个ProfilingConfig类进行profiling的配置。ProfilingConfig类的构造函数,请参见ProfilingConfig构造函数

配置示例:

config = NPURunConfig(profiling_config=profiling_config)

dump_config

dump开关,用户在创建NPURunConfig之前,可以实例化一个DumpConfig类进行dump的配置。DumpConfig类的构造函数,请参见DumpConfig构造函数

配置示例:

config = NPURunConfig(dump_config=dump_config)

enable_data_pre_proc

getnext算子是否下沉到昇腾AI处理器侧执行,getnext算子下沉是使能训练迭代循环下沉的必要条件。

  • True:下沉,默认为True。
  • False:不下沉。

配置示例:

config = NPURunConfig(enable_data_pre_proc=True)

precision_mode

算子精度模式,配置要求为string类型。

  • allow_fp32_to_fp16或None:算子不支持float32类型时,直接选择float16。默认选择此种模式。
  • force_fp16:算子既支持float16又支持float32数据类型时,强制选择float16。
  • force_fp32:算子既支持float16又支持float32数据类型时,强制选择float32。
  • must_keep_origin_dtype:保持原图精度。
  • allow_mix_precision:开启自动混合精度功能,针对全网中float32数据类型的算子,系统会按照内置优化策略自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。开启该功能开关后,用户可以同时使能Loss Scaling,从而补偿降低精度带来的精度损失,相关接口请参考NPULossScaleOptimizer构造函数

配置示例:

config = NPURunConfig(precision_mode="allow_mix_precision")

enable_reduce_precision

当前版本暂不支持。

variable_format_optimize

是否开启变量格式优化。

  • True:开启,默认开启。
  • False:关闭。

为了提高训练效率,在网络执行的变量初始化过程中,将变量转换成更适合在昇腾AI处理器上运行的数据格式。但在用户特殊要求场景下,可以选择关闭该功能开关。

配置示例:

config = NPURunConfig(variable_format_optimize=True)

mix_compile_mode

是否开启混合计算模式。

  • True:开启混合计算模式。
  • False:关闭混合计算模式(默认),即为全下沉模式。

计算全下沉模式即所有的计算类算子全部在Device侧执行,混合计算模式作为计算全下沉模式的补充,将部分不可离线编译下沉执行的算子留在前端框架中在线执行,提升昇腾AI处理器支持Tensorflow的适配灵活性。

配置示例:

config = NPURunConfig(mix_compile_mode=True)

hcom_parallel

是否启用Allreduce梯度更新和前后向并行执行。

  • True:开启Allreduce并行。
  • False:关闭Allreduce并行,默认关闭。

配置示例:

config = NPURunConfig(hcom_parallel=True)

graph_memory_max_size

网络静态内存和最大动态内存,可根据网络大小指定。单位:Byte,取值范围:[0, 256*1024*1024*1024]或[0, 274877906944]。当前受昇腾AI处理器硬件限制,graph_memory_max_size和variable_memory_max_size总和最大支持31G。如果不设置,默认为26GB。

配置示例:

config = NPURunConfig(graph_memory_max_size=str(26*1024 * 1024 * 1024))

variable_memory_max_size

变量内存,可根据网络大小指定。单位:Byte,取值范围:[0,256*1024*1024*1024]或[0, 274877906944]。当前受昇腾AI处理器硬件限制,graph_memory_max_size和variable_memory_max_size总和最大支持31G。如果不设置,默认为5GB。

配置示例:

config = NPURunConfig(variable_memory_max_size=str(5*1024 * 1024 * 1024))

auto_tune_mode

用户可以控制TBE算子编译时,是否通过Auto Tune工具对算子进行调优,以便在昇腾AI处理器上寻找最好的性能配置。

  • GA(Genetic Algorithm):遗传算法,用于设置Cube算子的调优性能。
  • RL(Reinforcement Learning):强化学习,用于设置Vector算子的调优性能。

支持配置多种模式,多种模式放在双引号中,中间用英文逗号分隔,若未配置该参数,则自动关闭自动调优功能。

关于Auto Tune工具的介绍和使用方法请参见CANN 开发工具指南》中的“Auto Tune工具使用指南”章节

配置示例:

config = NPURunConfig(auto_tune_mode="RL,GA")

stream_max_parallel_num

指定AICPU/AICORE引擎的并行度,从而实现AICPU/AICORE算子间的并行执行。

配置示例:

config = NPURunConfig(stream_max_parallel_num="DNN_VM_TF:10,DNN_V100:1")

DNN_VM_TF为AICPU引擎名称,本示例指定了AICPU引擎的并发数为10;

DNN_V100为AICORE引擎名称,本示例指定了AICORE引擎的并发数为1。

AICPU/AICORE引擎的并行度默认为1,取值范围为:[1,13]。

is_tailing_optimization

分布式训练场景下,是否开启通信拖尾优化,用于提升训练性能。通信拖尾优化即,通过计算依赖关系的改变,将不依赖于最后一个AR(梯度聚合分片)的计算操作调度到和最后一个AR并行进行,以达到优化通信拖尾时间的目的。取值:

  • True。
  • False:默认为False。

必须和NPUOptimizer构造函数配合使用,且要求和NPUOptimizer构造函数中的is_tailing_optimization值保持一致。

配置示例:

config = NPURunConfig(is_tailing_optimization=True)

horovod_mode

当前版本暂不支持。

graph_run_mode

图执行模式,取值:

  • 0:在线推理场景下,请配置为0。
  • 1:训练场景下,请配置为1,默认为1。

配置示例:

config = NPURunConfig(graph_run_mode=1)

op_debug_level

算子debug功能开关,取值:

  • 0:不开启算子debug功能,默认为0。
  • 1:开启算子debug功能,在训练脚本执行目录下的kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),用于后续工具进行AICore Error问题定位。
  • 2:开启算子debug功能,在训练脚本执行目录下的kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),并关闭ccec编译器的编译优化开关且打开ccec调试功能(ccec编译器选项设置为-O0-g),用于后续工具进行AICore Error问题定位。
  • 3:不开启算子debug功能,且在训练脚本执行目录下的kernel_meta文件夹中保留.o和.json文件。
  • 4:不开启算子debug功能,在训练脚本执行目录下的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件),生成TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json)。
    须知:

    训练执行时,建议配置为0或3。如果需要进行问题定位,再选择调试开关选项1和2,是因为加入了调试功能会导致网络性能下降。

配置示例:

config = NPURunConfig(op_debug_level=1)

enable_scope_fusion_passes

指定编译时需要生效的融合规则列表。此处传入注册的融合规则名称,允许传入多个,用“,”隔开。

无论是内置还是用户自定义的Scope融合规则,都分为如下两类:

  • 通用融合规则(General):各网络通用的Scope融合规则;默认生效,不支持用户指定失效。
  • 定制化融合规则(Non-General):特定网络适用的Scope融合规则;默认不生效,用户可以通过enable_scope_fusion_passes指定生效的融合规则列表。

配置示例:

config = NPURunConfig(enable_scope_fusion_passes="ScopeLayerNormPass,ScopeClipBoxesPass")

distribute

通过PS-Worker架构进行分布式训练时,传入ParameterServerStrategy对象。

配置示例:

config = NPURunConfig(distribute=strategy)

enable_exception_dump

是否Dump AI Core Error算子的输入和输出信息,dump信息生成在当前脚本执行目录。

  • 0:关闭,默认为0。
  • 1:开启,用户可常开,不影响性能。

配置示例:

config = NPURunConfig(enable_exception_dump=1)

op_select_implmode

昇腾AI处理器部分内置算子有高精度和高性能实现方式,用户可以通过该参数配置模型编译时选择哪种算子。取值包括:

  • high_precision:表示算子选择高精度实现。高精度实现算子是指在fp16输入的情况下,通过泰勒展开/牛顿迭代等手段进一步提升算子的精度。
  • high_performance:表示算子选择高性能实现。高性能实现算子是指在fp16输入的情况下,不影响网络精度前提的最优性能实现。默认为high_performance。
配置示例:
config = NPURunConfig(op_select_implmode="high_precision")

optypelist_for_implmode

列举算子optype的列表,该列表中的算子使用op_select_implmode参数指定的模式,当前支持的算子为Pooling、SoftmaxV2、LRN、ROIAlign,多个算子以“,”分隔。

该参数需要与op_select_implmode参数配合使用,配置示例:

config = NPURunConfig(
    op_select_implmode="high_precision",
    optypelist_for_implmode="Pooling,SoftmaxV2")

dynamic_input_config

当前版本暂不支持。

aoe_mode

当前版本暂不支持。

work_path

当前版本暂不支持。

distribute_config

当前版本暂不支持。

buffer_optimize

当前版本暂不支持。

enable_small_channel

当前版本暂不支持。

fusion_switch_file

融合开关配置文件路径以及文件名。

格式要求:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。

系统内置了一些图融合和UB融合规则,均为默认开启,可以根据需要关闭指定的融合规则。

配置示例:
config = NPURunConfig(fusion_switch_file="/home/test/fusion_switch.cfg")

配置文件fusion_switch.cfg样例如下on表示开启,off表示关闭。

{
    "Switch":{
        "GraphFusion":{
            "RequantFusionPass":"on",
            "ConvToFullyConnectionFusionPass":"off",
            "SoftmaxFusionPass":"on",
            "NotRequantFusionPass":"on",
            "ConvConcatFusionPass":"on",
            "MatMulBiasAddFusionPass":"on",
            "PoolingFusionPass":"on",
            "ZConcatv2dFusionPass":"on",
            "ZConcatExt2FusionPass":"on",
            "TfMergeSubFusionPass":"on"
        },
        "UBFusion":{
            "TbePool2dQuantFusionPass":"on"
        }
    }
}

同时支持用户一键关闭融合规则:

{
    "Switch":{
        "GraphFusion":{
            "ALL":"off"
        },
        "UBFusion":{
            "ALL":"off"
         }
    }
}

需要注意的是:

  1. 关闭某些融合规则可能会导致功能问题,因此此处的一键式关闭仅关闭系统部分融合规则,而不是全部融合规则。
  2. 一键式关闭融合规则时,可以同时开启部分融合规则:
    {
        "Switch":{
            "GraphFusion":{
                "ALL":"off",
                "SoftmaxFusionPass":"on"
            },
            "UBFusion":{
                "ALL":"off",
                "TbePool2dQuantFusionPass":"on"
            }
        }
    }

enable_compress_weight

当前版本暂不支持。

compress_weight_conf

当前版本暂不支持。

op_compiler_cache_mode

用于配置算子编译磁盘缓存模式。

  • enable:表示启用算子编译缓存。启用后可以避免针对相同编译参数及算子参数的算子重复编译,从而提升编译速度。
  • disable:表示禁用算子编译缓存。默认为disable。
  • force:表示强制刷新缓存,即先删除已有缓存,再重新编译并加入缓存。当用户的python或者依赖库等发生变化时,需要指定为force用于清理已有的缓存。

使用说明:

  • 该参数和op_compiler_cache_dir配合使用,且只有op_debug_level为0或3的情况下才能启用缓存功能。
  • 由于force选项会先删除已有缓存,所以不建议在程序并行编译时设置,否则可能会导致其他模型使用的缓存内容被清除而导致失败。
  • 建议模型最终发布时设置编译缓存选项为disable或者force。
配置示例:
config = NPURunConfig(op_compiler_cache_mode="enable")

op_compiler_cache_dir

用于配置算子编译磁盘缓存的目录。

路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。

如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel_cache。

默认值:$HOME/atc_data

配置示例:
config = NPURunConfig(op_compiler_cache_dir="/home/test/kernel_cache")

debug_dir

用于配置保存算子编译生成的调试相关的过程文件的路径,包括算子.o/.json/.cce等文件。

默认生成在当前脚本执行路径下。

配置示例:
config = NPURunConfig(debug_dir="/home/test")

dynamic_input

当前网络的输入是否为动态输入,取值包括:

  • True:动态输入。
  • False:固定输入,默认False。
配置示例:
config = NPURunConfig(dynamic_input=True)
须知:

当存在不同输入shape的子图时,由于dynamic_inputs_shape_range是针对于单张图的配置属性,因此可能会导致执行异常,建议使用set_graph_exec_config以支持动态输入场景。

dynamic_graph_execute_mode

对于动态输入场景,需要通过该参数设置执行模式,即dynamic_input为True时该参数生效。取值为:

dynamic_execute:动态图编译模式。该模式下获取dynamic_inputs_shape_range中配置的shape范围进行编译。

配置示例:
config = NPURunConfig(dynamic_graph_execute_mode="dynamic_execute")
须知:

当存在不同输入shape的子图时,由于dynamic_inputs_shape_range是针对于单张图的配置属性,因此可能会导致执行异常,建议使用set_graph_exec_config以支持动态输入场景。

dynamic_inputs_shape_range

动态输入的shape范围。例如全图有3个输入,两个为dataset输入,一个为placeholder输入,则配置示例为:

config = NPURunConfig(dynamic_inputs_shape_range="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填入:
    config = NPURunConfig(dynamic_inputs_shape_range="getnext:[3,3,4,10],[-1,3,2~1000,-1],[-1,-1,-1,-1]")
  • 如果有多个placeholder输入,如果用户没有设置name,和脚本中定义的顺序保持一致。否则和实际data节点的name字母序保持一致。
  • 对于标量输入,也需要填入shape范围,表示方法为:[]。
    须知:

    当存在不同输入shape的子图时,由于dynamic_inputs_shape_range是针对于单张图的配置属性,因此可能会导致执行异常,建议使用set_graph_exec_config以支持动态输入场景。

local_rank_id

该参数用于推荐网络场景的数据并行场景,在主进程中对于数据进行去重操作,去重之后的数据再分发给其他进程的Device进行前后向计算。

该模式下,一个主机上多Device共用一个进程做数据预处理,但实际还是多进程的场景,在主进程上进行数据预处理,其他进程不在接受本进程上的Dataset,而是接收主进程预处理后的数据。

具体使用方法一般是通过集合通信的get_local_rank_id()接口获取当前进程在其所在Server内的rank编号,用来判断哪个进程是主进程。

配置示例:

config = NPURunConfig(local_rank_id=0, local_device_list="0,1")

local_device_list

该参数配合local_rank_id使用,用来指定主进程给哪些其他进程的Device发送数据。

config = NPURunConfig(local_rank_id=0, local_device_list="0,1")

session_device_id

当用户需要将不同的模型通过同一个训练脚本在不同的Device上执行,可以通过该参数指定Device的逻辑ID。

通常可以为不同的图创建不同的Session,并且传入不同的session_device_id,该参数优先级高于ASCEND_DEVICE_ID。

配置示例:

config0 = NPURunConfig(..., session_device_id=0, ...)
estimator0 = NPUEstimator(..., config=config0, ...)
...
config1 = NPURunConfig(..., session_device_id=1, ...)
estimator1 = NPUEstimator(..., config=config1, ...)
...
config7 = NPURunConfig(..., session_device_id=7, ...)
estimator7 = NPUEstimator(..., config=config7, ...)
...

modify_mixlist

配置混合精度黑白灰名单,配置为路径以及文件名,文件为json格式。

allow_mix_precision混合精度模式下,针对全网中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。用户可以在内置优化策略基础上进行调整,自行指定哪些算子允许降精度,哪些算子不允许降精度。

配置示例:
config = NPURunConfig(modify_mixlist="/home/test/ops_info.json")

ops_info.json中可以指定算子类型,多个算子使用英文逗号分隔,样例如下:

{
  "black-list": {                  // 黑名单
     "to-remove": [                // 黑名单算子转换为灰名单算子
     "Yolo"
     ],
     "to-add": [                   // 白名单或灰名单算子转换为黑名单算子
     "Matmul",
     "Cast"
     ]
  },
  "white-list": {                  // 白名单
     "to-remove": [                // 白名单算子转换为灰名单算子 
     "Conv2D"
     ],
     "to-add": [                   // 黑名单或灰名单算子转换为白名单算子
     "Bias"
     ]
  }
}

如何查询混合精度场景下算子的内置优化策略:内置优化策略在“OPP安装目录/opp/op_impl/built-in/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json”,例如:

"Conv2D":{
    "precision_reduce":{
        "flag":"true"
},
  • true:(白名单)允许将当前float32类型的算子,降低精度到float16。
  • false:(黑名单)不允许将当前float32类型的算子,降低精度到float16。
  • 不配置:(灰名单)当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。

op_precision_mode

设置具体某个算子的精度模式,通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。

ini文件格式要求:

AvgPoolV2=high_precision
ReduceMeanD=high_performance

该参数不能与op_select_implmode、optypelist_for_implmode参数同时使用,若三个参数同时配置,则只有op_precision_mode参数指定的模式生效。

该参数不建议配置,若使用高性能或者高精度模式,网络性能或者精度不是最优,则可以使用该参数,通过配置ini文件调整某个具体算子的精度模式。

配置示例:

config = NPURunConfig(op_precision_mode="/home/test/op_precision.ini")

device_type

当前版本暂不支持。

hccl_timeout

集合通信超时时间,单位为s。

配置示例:

config = NPURunConfig(hccl_timeout=600)

op_wait_timeout

算子等待超时时间,单位为s。

配置示例:

config = NPURunConfig(op_wait_timeout=120)

op_execute_timeout

当前版本暂不支持。

返回值

返回NPURunConfig类对象,作为NPUEstimator的初始化参数传入。

调用示例

from npu_bridge.npu_init import *
session_config=tf.ConfigProto()
config = NPURunConfig(
    session_config=session_config, 
    mix_compile_mode=False, 
    iterations_per_loop=1000)