问题描述:
我目前正在使用vLLM框架进行FP16模型推理优化,环境是dtk24.04。通过 hipprof 分析整个程序的运行耗时后,我发现模型推理期间的实际计算耗时仅占25s,但在整个程序的300s总耗时中,模型加载占据了约200多秒的时间。由于我希望优化的重点在于推理阶段的性能,我希望能更精确地分析推理阶段各个内核的耗时情况。
当前进展:
hipprof 分析了整个程序的内核执行时间,但该工具的输出结果包括了模型加载和推理的所有内核操作,难以专注于推理阶段的性能瓶颈。hipEvent 进行手动标记,并在特定位置记录和分析推理阶段的内核执行情况(考虑作为下策)。主要关注paged_attention_v2_kernel 和paged_attention_v1_kernel 这些在推理期间重要的vLLM扩展算子。
问题 :
rocprofiler 工具,可能用于更精细地分析GPU任务性能。请问:
rocprofiler 是否可以只分析特定程序段的内核执行情况,类似于hipprof 的分析?
暂无数据
您好,通过您的问题描述,了解到您这边想要“精确地分析推理阶段各内核的耗时情况”,建议可以使用roctracer中的roctracer_start/roctracer_stop接口,分别放在推理阶段代码开始和结束的位置,然后运行命令hipprof --trace-off ./test 进行推理阶段性能数据捕获。
hipprof中分析部分性能数据的其它方式:
方法1:使用--index-range,结合--db指令可以重新生成指定范围内的性能数据(需要对api调用顺序的范围有一定了解)。
方法2:使用--hiptx-trace,需在代码中调用roctracer中的roctx相关API函数来精准控制性能分析的开始和结束,修改后会提示推理阶段性能分析的位置。(需修改源码)。
方法3:使用hipprof中的--session功能来抓取指定阶段的性能数据。