PyTorch 测量代码段的运行时间

Contents

timeit

  • timeit. 测量代码开始时刻和结束时刻,然后求差

  • pytorch 的代码经常会运行在 GPU 上,而在 GPU 上的运行都是异步的,意味着采用一般的 timeit 操作不能准确地得到运行时总和,因此我们一般需要用 pytorch 内置的计时工具和同步工具 (单位:ms)
python 复制代码
start = torch.cuda.Event(enable_timing=True)
end = torch.cuda.Event(enable_timing=True)

start.record()
z = x + y
end.record()

# Waits for everything to finish running
torch.cuda.synchronize()

print(start.elapsed_time(end))

profile

  • profile. pytorch 自带或者第三方的代码耗时工具

  • timeit 的方法测试一些小代码还勉强适用,但是在大规模的测试中显然会变得很麻烦,当然,你可以通过添加修饰器的方式去简化一行行重复人工添加这些时间测量代码的枯燥,但是这也并不是最好的解决方案
  • 幸运的是,pytorch 自带了 profile 用于计算模型每个部分耗时 ,其既可以计算 cpu 耗时,也可以计算 gpu 耗时
python 复制代码
x = torch.randn((1, 1), requires_grad=True)
with torch.autograd.profiler.profile(enabled=True) as prof:
	for _ in range(100):  # any normal python code, really!
    	y = x ** 2
print(prof.key_averages().table(sort_by="self_cpu_time_total"))

References

相关推荐
抽象带篮子12 小时前
Pytorch Lightning 框架运行顺序
人工智能·pytorch·python
monster000w16 小时前
容器云2.7pytorch版本安装问题
人工智能·pytorch·python
ytao_wang18 小时前
pip install -e .报错ModuleNotFoundError: No module named ‘torch‘
pytorch·python·深度学习
阿龙AI日记19 小时前
保姆级教程:Anaconda+Cuda+Torch+Pycharm配置指南
ide·pytorch·python·pycharm
liliangcsdn20 小时前
如何使用pytorch模拟Pearson loss训练模型
人工智能·pytorch·python
nwsuaf_huasir20 小时前
深度学习1.4-pytorch安装
人工智能·pytorch·深度学习
瀚岳-诸葛弩21 小时前
对比tensorflow,从0开始学pytorch(一)
人工智能·pytorch·tensorflow
泰迪智能科技21 小时前
图书推荐|堪称教材天花板,深度学习教材-PyTorch与深度学习实战
人工智能·pytorch·深度学习
胖墩会武术1 天前
【PyTorch项目实战】Ultralytics YOLO模型本地部署(训练 + 测试 + 推理)
人工智能·pytorch·yolo
AndrewHZ1 天前
【遥感图像入门】遥感图像专用去噪算法:核心方案与实战(PyTorch代码)
pytorch·算法·计算机视觉·cv·遥感图像·高分辨率·去噪算法