带有调度程序的Pytorch探查器在步骤中打印不需要的消息



我正在尝试学习如何使用Pytorch探查器API来测量使用不同方法训练模型时的性能差异。在专门的教程中,有一部分他们展示了如何使用";时间表";探查器的参数。

我的问题是,当我想在代码中使用它时,调用step the first";等待";times打印消息

[W kineto_shim.cpp:337]探查器未初始化:跳过步骤((调用

由于我希望我的探查器大部分时间都处于睡眠状态;等待";值非常高,所以它会用一堆这些行污染我的终端,直到分析器第一次真正执行

我怎样才能摆脱它?

这是一个最小的代码样本,它再现了问题

import torch
from torch.profiler import profile, record_function, ProfilerActivity
with profile(
activities=[torch.profiler.ProfilerActivity.CUDA],
schedule=torch.profiler.schedule(wait=15, warmup=1, active=4),        
profile_memory=False,
record_shapes=True,
with_stack=True,
) as prof:
for _ in range(20):
y = torch.randn(1).cuda() + torch.randn(1).cuda()
prof.step()

print(prof.key_averages())

这是最近在一个拉取请求中修复/添加的

现在可以设置env变量KINETO_LOG_LEVEL。例如在bash脚本中:export KINETO_LOG_LEVEL=3

根据源代码的级别为:

enum LoggerOutputType {
VERBOSE = 0,
INFO = 1,
WARNING = 2,
ERROR = 3,
STAGE = 4,
ENUM_COUNT = 5
};

这至少是它应该如何工作的,根据这个问题,日志级别的更改还没有合并

最新更新