initialize_system
功能说明
一般执行训练不需要调用该接口,如果用户统计训练时间时不想包括GE初始化时间,可以使用该接口。使用集合通信接口时,需要先调用该接口进行集合通信初始化。
函数原型
def initialize_system(name = None)
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
name |
输入 |
算子名称。 |
返回值
返回一个op,供用户通过sess.run(op)完成GE初始化。
约束说明
如果需要调用initialize_system接口,且训练执行时需要使能如下功能时,则必须在initialize_system起session时配置。
调用示例
如果在sess.run或者estimator.train之前调用get_local_rank_id/get_rank_size/get_rank_id等HCCL接口,需要先另起session执行initialize_system,进行集合通信初始化,然后在训练结束后执行shutdown_system,同时关闭session。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import tensorflow as tf from npu_bridge.npu_init import * npu_int = npu_ops.initialize_system() npu_shutdown = npu_ops.shutdown_system() config = tf.ConfigProto() custom_op = config.graph_options.rewrite_options.custom_optimizers.add() custom_op.name = "NpuOptimizer" custom_op.parameter_map["use_off_line"].b = True config.graph_options.rewrite_options.remapping = RewriterConfig.OFF config.graph_options.rewrite_options.memory_optimization = RewriterConfig.OFF init_sess = tf.Session(config=config) init_sess.run(npu_int) #调用HCCL接口... #执行训练... init_sess.run(npu_shutdown) init_sess.close() |
或者:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import tensorflow as tf from npu_bridge.npu_init import * npu_init = npu_ops.initialize_system() npu_shutdown = npu_ops.shutdown_system() config = tf.ConfigProto() custom_op = config.graph_options.rewrite_options.custom_optimizers.add() custom_op.name = "NpuOptimizer" custom_op.parameter_map["use_off_line"].b = True config.graph_options.rewrite_options.remapping = RewriterConfig.OFF config.graph_options.rewrite_options.memory_optimization = RewriterConfig.OFF with tf.Session(config=config) as sess: sess.run(npu_init) #调用HCCL接口... #执行训练... sess.run(npu_shutdown) |