Я хочу измерить время, которое требуется моему сеансу для выполнения операций вывода.
Я измерил его, используя time
, вот так
start = time.clock()
sess.run([ops['pred']], feed_dict=feed_dict)
end = time.clock()
elapsed_time_batch = end-start
Я делаю это несколько раз на одном и том же наборе данных и в среднем.
Проблема в том, что я получаю очень разные средние измерения времени (1,7 мс против 1,2 мс). Несмотря на то, что «просто» разница 0,5 мс, это большая относительная разница (0,5 против 1,7 составляет около 30%).
Я попытался установить некоторые параметры графического процессора для сеанса следующим образом:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.95
config.gpu_options.allow_growth = False
config.allow_soft_placement = True
config.log_device_placement = False
if limit_gpu:
gpu_idx = str(gpu_idx)
os.environ["CUDA_VISIBLE_DEVICES"] = gpu_idx
else:
os.environ["CUDA_VISIBLE_DEVICES"] = "0, 1"
sess = tf.Session(config=config)
Но это не решило это. Что может быть причиной этого изменения и как я могу стабилизировать его, чтобы получить более надежное время чтения.
Я работаю на сервере Linux с 4 GPUS (для этого теста я ограничился 1 GPU - Titan Xp).