如何用Nsight Compute/System测量含CUDA程序的真实性能与时长?
如何用Nsight Compute/System获取含CUDA Kernel与API的应用真实性能指标
一、用Nsight System获取真实时长与整体性能
Nsight System是系统级性能分析工具,天生适配全流程真实执行场景,完全满足你的需求:
- 启动Nsight System,选择目标应用程序,配置追踪选项时确保勾选CUDA Runtime API、CUDA Kernel Activity,若需主机端代码时长统计,同时勾选CPU活动追踪。
- 运行分析后,在Timeline视图中可直接查看应用从启动到结束的真实总时长,还能清晰看到异步Kernel、
cudaMemcpy等CUDA API的执行时间线,以及它们的并发调度情况。 - 性能统计方面,Nsight System会提供GPU整体利用率、IPC、吞吐量等核心指标,所有数据基于应用真实执行流程,不存在Kernel序列化的问题。
二、Nsight Compute的Range Replay/Application Range Replay模式
针对你关心的模式细节:
- 该模式确实无需序列化Kernel,能保留应用原本的并发调度逻辑,可获取真实并发场景下的Kernel硬件指标(如IPC、吞吐量),但不支持追踪
cudaMemcpy等CUDA Runtime API的活动——这类操作属于主机端发起的内存交互,不在Nsight Compute聚焦的GPU Kernel硬件分析范围内。 - 若仅需GPU Kernel的并发性能数据,该模式是合适的选择;但如果要覆盖包含CUDA API的全应用真实时长,Nsight Compute并非最优方案,更推荐搭配Nsight System使用:先用Nsight System定位全流程的关键阶段,再用Nsight Compute的Range Replay模式针对这些阶段的Kernel做深入硬件剖析。
内容的提问来源于stack exchange,提问作者최보열
相关产品推荐
相关产品推荐

