Closed IvanaXu closed 1 year ago
https://deeprec.readthedocs.io/zh/latest/Executor-Optimization.html
基于CostModel的Executor
通过动态Trace指定的Session Run情况,统计与计算多组指标,通过CostModel计算出一个较优的调度策略。该功能中包含了基于关键路径的调度策略和根据CostModel批量执行耗时短的算子的调度策略。
使用方式 首先用户可以指定Trace哪些Step的Sesison Run来收集执行指标,默认是收集100~200 Step的指标,通过设置下列环境变量,用户可以自定义此参数。
os.environ['START_NODE_STATS_STEP'] = "200" os.environ['STOP_NODE_STATS_STEP'] = "500" 上述示例表示Trace 200~500区间的执行指标。 如果START_NODE_STATS_STEP小于STOP_NODE_STATS_STEP,会Disable此Trace功能,后续CostModel计算也不会被执行。 同时在用户脚本中,需要增加增加下列代码来开启基于CostModel的Executor功能,
sess_config = tf.ConfigProto() sess_config.executor_policy = tf.ExecutorPolicy.USE_COST_MODEL_EXECUTOR
with tf.train.MonitoredTrainingSession( master=server.target, ... config=sess_config) as sess: ...
基于CostModel的Executor
通过动态Trace指定的Session Run情况,统计与计算多组指标,通过CostModel计算出一个较优的调度策略。该功能中包含了基于关键路径的调度策略和根据CostModel批量执行耗时短的算子的调度策略。
使用方式 首先用户可以指定Trace哪些Step的Sesison Run来收集执行指标,默认是收集100~200 Step的指标,通过设置下列环境变量,用户可以自定义此参数。
os.environ['START_NODE_STATS_STEP'] = "200" os.environ['STOP_NODE_STATS_STEP'] = "500" 上述示例表示Trace 200~500区间的执行指标。 如果START_NODE_STATS_STEP小于STOP_NODE_STATS_STEP,会Disable此Trace功能,后续CostModel计算也不会被执行。 同时在用户脚本中,需要增加增加下列代码来开启基于CostModel的Executor功能,
sess_config = tf.ConfigProto() sess_config.executor_policy = tf.ExecutorPolicy.USE_COST_MODEL_EXECUTOR
with tf.train.MonitoredTrainingSession( master=server.target, ... config=sess_config) as sess: ...