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

相关推荐
陈晨辰熟稳重3 小时前
20260113-np.random.multinomial 与 torch.multinomial
pytorch·python·numpy·采样·multinomial
知乎的哥廷根数学学派4 小时前
基于注意力机制的多尺度脉冲神经网络旋转机械故障诊断(西储大学轴承数据,Pytorch)
人工智能·pytorch·python·深度学习·神经网络·机器学习
DJ.马4 小时前
如何在环境里同时配置tensorflow和pytorch共存
人工智能·pytorch·tensorflow
知乎的哥廷根数学学派5 小时前
基于多分辨率注意力脉冲神经网络的机械振动信号故障诊断算法(西储大学轴承数据,Pytorch)
人工智能·pytorch·深度学习·神经网络·算法·机器学习
koo3646 小时前
pytorch深度学习笔记16
pytorch·笔记·深度学习
NimoXie7 小时前
Windows CUDA + cuDNN + TensorFlow + PyTorch 识别 GPU 的简单整合
pytorch·windows·tensorflow
java_logo8 小时前
PyTorch Docker 容器化部署与生产运行实践
人工智能·pytorch·docker·pytorch部署·pytorch部署文档·pytorch部署教程·pytorch上部署方案
知乎的哥廷根数学学派18 小时前
基于多模态特征融合和可解释性深度学习的工业压缩机异常分类与预测性维护智能诊断(Python)
网络·人工智能·pytorch·python·深度学习·机器学习·分类
吨吨不打野21 小时前
CS336——2. PyTorch, resource accounting
人工智能·pytorch·python
大模型真好玩1 天前
大模型训练全流程实战指南基础篇(二)——大模型文件结构解读与原理解析
人工智能·pytorch·langchain