PyTorch
前提条件
完成模型开发&迁移中的PyTorch部分,得到可正常执行训练任务的GPU和NPU环境。

在执行性能数据采集前请先将训练脚本(main.py文件)中的PyTorch精度数据采集相关接口删除,因为精度数据采集和性能数据采集不可同时执行。
执行采集
- 在NPU环境下的训练脚本(main.py文件)中添加Ascend PyTorch Profiler接口工具,如下所示。
完整示例代码请参见Ascend PyTorch Profiler接口采集性能数据代码样例。
添加以下接口前,建议注释前面步骤的非训练脚本接口。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
23 24 import torch_npu 25 from torch_npu.contrib import transfer_to_npu 26 ... 318 model.train() 320 end = time.time() 321 experimental_config = torch_npu.profiler._ExperimentalConfig( 322 profiler_level=torch_npu.profiler.ProfilerLevel.Level0, 323 data_simplification=False) 324 with torch_npu.profiler.profile( 325 activities=[ 326 torch_npu.profiler.ProfilerActivity.CPU, 327 torch_npu.profiler.ProfilerActivity.NPU 328 ], 329 schedule=torch_npu.profiler.schedule(wait=0, warmup=0, active=1, repeat=1, skip_first=1), 330 on_trace_ready=torch_npu.profiler.tensorboard_trace_handler("./profiling_data"), 331 experimental_config=experimental_config) as prof: 332 for i, (images, target) in enumerate(train_loader): ... 355 # measure elapsed time 356 batch_time.update(time.time() - end) 357 end = time.time() 358 359 prof.step() ...
- 执行训练脚本命令,工具会采集模型训练过程中的性能数据。
python pytorch_main.py -a resnet50 -b 32 --gpu 1 --dummy
- 查看采集到的PyTorch训练性能数据结果文件。
训练结束后,在torch_npu.profiler.tensorboard_trace_handler接口指定的目录下生成Ascend PyTorch Profiler接口的性能数据结果目录,如下示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
└── msprof_1784298_20250620085947065_ascend_pt ├── ASCEND_PROFILER_OUTPUT │ ├── kernel_details.csv │ ├── operator_details.csv │ ├── step_trace_time.csv │ └── trace_view.json ├── FRAMEWORK ... ├── PROF_000001_20250620085947066_FLRBJLNFMBIDRPMB │ ├── device_1 │ │ ├── data ... │ ├── host │ │ ├── data ... │ ├── mindstudio_profiler_log ... │ └── mindstudio_profiler_output │ ├── api_statistic_20250620085954.csv │ ├── msprof_20250620085953.json │ ├── op_summary_20250620085954.csv │ ├── README.txt │ └── task_time_20250620085954.csv ├── profiler_info.json └── profiler_metadata.json
Ascend PyTorch Profiler接口采集的性能数据可以使用mstt的msprof-analyze工具进行辅助分析,也可以直接使用MindStudio Insight工具进行可视化分析,详细操作请参见使用msprof-analyze工具分析性能数据和使用MindStudio Insight工具可视化性能数据。
父主题: 性能数据采集