IvanaXu / iDeepRec

DeepRec For Me https://github.com/alibaba/DeepRec
https://deeprec.readthedocs.io/zh/latest/index.html
Apache License 2.0
3 stars 1 forks source link

part1 🌈 w0.1 基于CostModel的Executor #31

Closed IvanaXu closed 1 year ago

IvanaXu commented 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: ...