配置项 |
说明 |
使用场景 |
---|---|---|
iterations_per_loop |
sess.run模式下通过set_iteration_per_loop配置小循环次数,即每次sess.run(),在Device侧执行训练迭代的次数。 此处的配置参数和set_iteration_per_loop设置的iterations_per_loop值保持一致,用于功能校验。 配置示例: custom_op.parameter_map["iterations_per_loop"].i = 10 |
训练 |
配置项 |
说明 |
使用场景 |
---|---|---|
hcom_parallel |
分布式训练场景下,可通过此开关控制是否启用Allreduce梯度更新和前后向并行执行。
默认值为“True”,针对小网络(例如:Resnet18),可配置为“False”。 配置示例: custom_op.parameter_map["hcom_parallel"].b = True |
训练 |
enable_small_channel |
是否使能small channel的优化,使能后在channel<=4的卷积层会有性能收益。
配置示例: custom_op.parameter_map["enable_small_channel"].i = 1 |
在线推理/训练 |
op_precision_mode |
设置具体某个算子的高精度或高性能模式,通过该参数传入自定义的模式配置文件op_precision.ini,可以为不同的算子设置不同的模式。 支持按照算子类型或者按照节点名称设置,按节点名称设置的优先级高于算子类型,样例如下: [ByOpType] optype1=high_precision optype2=high_performance [ByNodeName] nodename1=high_precision nodename2=high_performance 该参数不能与op_select_implmode、optypelist_for_implmode参数同时使用,若三个参数同时配置,则只有op_precision_mode参数指定的模式生效。 一般场景下该参数不建议配置。若使用高性能或者高精度模式,网络性能或者精度不是最优,则可以使用该参数,通过配置ini文件调整某个具体算子的精度模式。 配置示例: custom_op.parameter_map["op_precision_mode"].s = tf.compat.as_bytes("/home/test/op_precision.ini") |
训练/在线推理 |
enable_scope_fusion_passes |
指定编译时需要生效的Scope融合规则列表。此处传入注册的融合规则名称,允许传入多个,用“,”隔开。 无论是内置还是用户自定义的Scope融合规则,都分为如下两类:
配置示例: custom_op.parameter_map["enable_scope_fusion_passes"].s = tf.compat.as_bytes("ScopeLayerNormPass,ScopeClipBoxesPass") |
训练/在线推理 |
stream_max_parallel_num |
此配置项仅适用于NMT网络。 用于指定AI CPU/AI Core引擎的并行度,从而实现AI CPU/AI Core算子间的并行执行。 DNN_VM_AICPU为AI CPU引擎名称,本示例指定了AI CPU引擎的并发数为10; AIcoreEngine为AI Core引擎名称,本示例指定了AI Core引擎的并发数为1。 AI CPU/AI Core引擎的并行度默认为1,取值不能超过AI Core的最大核数。 配置示例: custom_op.parameter_map["stream_max_parallel_num"].s = tf.compat.as_bytes("DNN_VM_AICPU:10,AIcoreEngine:1") |
训练/在线推理 |
is_tailing_optimization |
此配置项仅适用于Bert网络。 分布式训练场景下,是否开启通信拖尾优化,用于提升训练性能。通信拖尾优化即,通过计算依赖关系的改变,将不依赖于最后一个AR(梯度聚合分片)的计算操作调度到和最后一个AR并行进行,以达到优化通信拖尾时间的目的。取值:
必须和NPUOptimizer配合使用,且要求和NPUOptimizer中的is_tailing_optimization值保持一致。 配置示例: custom_op.parameter_map["is_tailing_optimization"].b = True |
训练 |