[torch 参数更多]torch.profiler.profile¶
torch.profiler.profile¶
torch.profiler.profile(*, activities=None, schedule=None, on_trace_ready=None, record_shapes=False, profile_memory=False, with_stack=False, with_flops=False, with_modules=False, experimental_config=None, use_cuda=None)
paddle.profiler.Profiler¶
paddle.profiler.Profiler(*, targets=None, scheduler=None, on_trace_ready=None, record_shapes=False, profile_memory=False, timer_only=False)
PyTorch 相比 Paddle 支持更多其他参数,具体如下:
参数映射¶
PyTorch | PaddlePaddle | 备注 |
---|---|---|
activities | targets | 指定性能分析所要分析的设备,PyTorch 为 torch.profiler.ProfilerActivity 类型,Paddle 为 paddle.profiler.ProfilerTarget 类型。 |
schedule | scheduler | 如果是 Callable 对象,代表是性能分析器状态的调度器,仅参数名不一致。 |
on_trace_ready | on_trace_ready | 处理性能分析器的回调函数。 |
record_shapes | record_shapes | 如果设置为 True, 则会开启收集框架算子输入张量的 shape。 |
profile_memory | profile_memory | 如果设置为 True, 则会开启收集显存分析的数据。 |
with_stack | - | 记录 source 信息,Paddle 无此参数,暂无转写方式。 |
with_flops | - | 使用公式来估计浮点计算,Paddle 无此参数,暂无转写方式。 |
with_modules | - | 记录模块层次,Paddle 无此参数,暂无转写方式。 |
experimental_config | - | 实验性特征配置,Paddle 无此参数,暂无转写方式。 |
use_cuda | - | 已废弃,Paddle 无此参数,暂无转写方式。 |
- | timer_only | 如果设置为 True,将只统计模型的数据读取和每一个迭代所消耗的时间,而不进行性能分析,PyTorch 无此参数,Paddle 保持默认即可。 |
转写示例¶
参数类型不同¶
# PyTorch 写法:
with torch.profiler.profile(
activities=[
torch.profiler.ProfilerActivity.CPU,
torch.profiler.ProfilerActivity.CUDA,
],
schedule=torch.profiler.schedule(
wait=1,
warmup=1,
active=2),
on_trace_ready=torch.profiler.tensorboard_trace_handler('./log')
) as p:
for iter in range(10):
p.step()
# Paddle 写法:
with paddle.profiler.Profiler(
targets=[
paddle.profiler.ProfilerTarget.CPU,
paddle.profiler.ProfilerTarget.GPU
],
scheduler=(2, 5),
on_trace_ready = paddle.profiler.export_chrome_tracing('./log')
) as p:
for iter in range(10):
p.step()