pytorch 正确的测试时间的代码 torch.cuda.synchronize()

start = time.time()
result = model(input)
end = time.time()
torch.cuda.synchronize()
start = time.time()
result = model(input)
torch.cuda.synchronize()
end = time.time()

一共上述两种测试时间的方式,正确的方式是第二种,为什么是这样呢?在pytorch里面,程序的执行都是异步的。如果采用第一种方式,测试的时间会很短,因为执行完end=time.time()程序就退出了,后台的cu也因为python的退出退出了,如果采用第二种方式,代码会同步cu的操作,等待gpu上的操作都完成了再继续成形end = time.time()

最新回复(0)
/jishuM0rTHyaAF2IiMQfGQAs_2BJ1eF2kF9QqBVk3_2F4YL4pd_2B0_3D4689633
8 简首页