测量模块推理时间

文章介绍了在PyTorch中使用`torch.cuda.synchronize()`确保GPU任务完成后再返回CPU主线程的重要性,以及推荐使用`torch.cuda.Event`进行时间测量,以准确评估`Voxel_decoder`在多GPU环境下的性能差异。
摘要由CSDN通过智能技术生成
torch.cuda.synchronize()# synchronize 等待所有 GPU 任务处理完才返回 CPU 主线程
starter, ender = torch.cuda.Event(enable_timing=True), torch.cuda.Event(enable_timing=True)# 设置用于测量时间的 cuda Event, 这是PyTorch 官方推荐的接口
starter.record()
preds = self.voxel_decoder(mlvl_feats, img_metas=img_metas)
ender.record()
torch.cuda.synchronize() # 等待GPU任务完成
use_time = starter.elapsed_time(ender) # 从 starter 到 ender 用时 单位ms
torch.cuda.synchronize()# synchronize 等待所有 GPU 任务处理完才返回 CPU 主线程

t0 = time.time()
preds = self.voxel_decoder(mlvl_feats, img_metas=img_metas)
t1 = time.time()
torch.cuda.synchronize() # 等待GPU任务完成
use_time = t1-t0 # 从 start 到 end 用时 单位s
  • 上述两种方式结果基本一样,注意要使用torch.cuda.synchronize()才准确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值