SuperAPI AI 工具集

ai-for-science-ai4s-profiling

数据与分析

查看项目

更新于 10-15 17:19

技能介绍

用途:该技能提供在华为昇腾NPU上采集性能Profiling数据的标准化流程,覆盖训练与推理场景,支持L0(最小膨胀)、L1(算子级)、L2(完整调用栈+内存)三级采集,并给出性能分析与调优建议。

主要能力:三级采集级别;通过schedule(skip_first/wait/warmup/active/repeat)控制采集迭代步,避免数据膨胀;支持CPU+NPU双侧活动、算子耗时、调用栈、内存数据采集;适配PyTorch Lightning(Callback)、HuggingFace Trainer(TrainerCallback)、DeepSpeed多卡(建议rank 0采集);可选GPU对比采集(原生torch.profiler)。

使用方式:先做环境校验——source /usr/local/Ascend/ascend-toolkit/set_env.sh;npu-smi info;python3 -c "import torch; import torch_npu; print(torch.npu.is_available()); a = torch.randn(3,4).npu(); print(a.device)"。采集前建议设置 export CPU_AFFINITY_CONF=1 与 export TASK_QUEUE_ENABLE=2。用torch_npu.profiler.profile包裹训练/推理循环,配合tensorboard_trace_handler输出trace,并在每步后调用prof.step();推理场景采集后需prof.step()触发导出。可选预检命令:python scripts/validate_profiling_env.py --device npu:0 --output-dir ./profiling_output。

默认行为与限制:用户未指定级别时默认L0;不要修改业务代码中的CUDA写法(自动迁移可转换)。前置条件:Ascend910系列至少1卡、CANN≥8.0(推荐8.2+)、Python 3.8–3.10、PyTorch与CANN匹配、torch_npu与PyTorch一致、磁盘建议≥10GB。L2的with_stack与profile_memory会显著增大数据量。L1/L2通过experimental_config与ProfilerLevel.Level1设置,GPU对比不使用experimental_config。未提供的收费、平台等事实暂未说明。