如果使用TFL的MKL版本,则线程模型将变为OpenMP而不是Pthreads。控制线程数及其相关性对于获得良好的CPU性能至关重要。在某些情况下,人们可以做类似下面的事情:
config = tf.ConfigProto(inter_op_parallelism_threads=FLAGS.inter_op,intra_op_parallelism_threads=FLAGS.intra_op)
sess = tf.Session(config=config)
但是这种机制似乎不适用于rnn教程应用程序
ptb /tensorflow/tensorflow/models/tutorials/rnn/ptb/ptb_word_lm.py
我认为使用
sv = tf.train.Supervisor(logdir=FLAGS.save_path)
定义会话 加入
inter_op_parallelism_threads=FLAGS.inter_op,intra_op_parallelism_threads=FLAGS.intra_op
到该调用失败。 那么一般来说如何设置这些标志呢?
答案 0 :(得分:0)
ptb_word_lm.py的解决方案似乎是添加
config = tf.ConfigProto(inter_op_parallelism_threads = FLAGS.inter_op,intra_op_parallelism_threads = FLAGS.intra_op)
sess = tf.Session(config = config)
在调用ptb_reader之前设置会话env。 (以及一些OMP * env变量)