在Linux环境下监控PyTorch性能,可从系统资源监控、GPU监控、训练过程监控三方面入手,常用工具及方法如下:
htop
支持交互式排序(如按CPU/内存使用率)。watch -n 1 nvidia-smi
可每秒刷新。from torch.profiler import profile
with profile(activities=[ProfilerActivity.CPU, ProfilerActivity.MEMORY]) as prof:
# 训练代码
print(prof.key_averages().table(sort_by="cuda_time_total"))
cuda-memcheck
检测内存错误,nvprof
分析GPU内核性能(需安装CUDA Toolkit)。SummaryWriter
使用。from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('runs/experiment')
writer.add_scalar('Loss/train', loss.item(), epoch)
writer.close()
logging
模块记录关键指标(如每轮损失、学习率),保存到文件便于分析。torch.distributed
和Dynolog
,支持多GPU训练的分布式追踪。perf
分析CPU缓存命中率、磁盘IO延迟等底层性能。选择建议:
nvidia-smi
+ htop
+ TensorBoard(覆盖GPU、系统资源及训练指标)。perf
(定位性能瓶颈)。torch.distributed
(追踪跨节点性能)。