Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Nsight Systems如何可视化CPU-GPU交互


Nsight Systems如何可视化CPU-GPU交互


Nsight Systems是一种强大的工具,旨在可视化和分析应用程序中的CPU-GPU交互,从而提供对性能瓶颈和优化机会的见解。这是它可视化这些交互的方式:

###全系统性能分析

Nsight Systems捕获了全系统的活动数据,包括CPU和GPU事件,并在统一的时间轴上显示它们。该时间表使开发人员可以看到系统的不同组件如何随着时间的推移相互交互,从而更容易识别应用程序工作流程中的相关性,依赖项和瓶颈[3] [4]。

CPU活动可视化

Nsight Systems通过显示线程状态,利用率和算法执行来可视化CPU活动。这有助于开发人员了解如何使用CPU资源以及可能存在潜在的瓶颈。该工具支持多过程树分析,使用户可以同时跟踪多个过程和线程的活动[1] [3]。

GPU活动可视化

对于GPU活动,Nsight Systems提供了有关GPU工作负载的详细见解,包括流媒体 - 局部iProcessor(SM)优化,内存转移和内核执行。它支持追踪各种GPU API,例如CUDA,VULKAN和OPENGL,使开发人员能够深入分析GPU计算和图形任务[3] [4]。该工具还提供GPU指标采样,其中包括SM利用率,张量核心活动和指令吞吐量等指标。这些指标通过确定GPU资源使用情况中的利用不足或效率低下来帮助开发人员优化GPU性能[1] [3]。

###关联CPU和GPU事件

Nsight Systems的关键特征之一是它可以关联CPU和GPU事件的能力。通过在同一时间轴上可视化CPU和GPU活动,开发人员可以看到CPU操作如何影响GPU性能,反之亦然。这种相关性对于确定由于CPU和GPU之间的相互作用而发生的瓶颈至关重要,例如数据传输延迟或同步问题[3] [4]。

###低顶和可伸缩性

Nsight Systems旨在以低开销工作运行,以确保分析过程不会显着影响应用程序的性能。这使其适合分析从工作站到数据中心和云环境的各种NVIDIA平台上运行的复杂的大规模应用程序[3] [6]。

###用户界面和导航

该工具提供了一种用户友好的GUI,该GUI允许开发人员使用滚动条,鼠标轮和键盘快捷键在时间轴视图中导航。该界面使用户可以缩小特定时间范围或事件,从而促进对性能问题的详细分析[5] [9]。

总体而言,Nsight Systems对CPU-GPU交互作用提供了全面的视图,使开发人员能够优化其应用程序,以提高各种平台的性能和效率。

引用:
[1] https://extremecomputingtraining.anl.gov/wp-content/uploads/sites/96/2022/2022/11/atpesc-2022-2022-2022-track-6-talk-6-talk-2-keipert-nvidia.pdf
[2] https://bede-documentation.readthedocs.io/en/latest/software/tools/nsight-systems.html
[3] https://developer.nvidia.com/nsight-systems
[4] https://indico.cern.ch/event/962112/contributions/4047370/4047370/attachments/2159916/3643963/nsight%20systems%20Systems%20-%20-%20-%20-%20x86%20x86%20 introduction;
[5] https://www.youtube.com/watch?v=tgchxcfm-yo
[6] https://docs.nersc.gov/tools/performance/nvidiaprofoftoofors/
[7] https://www.youtube.com/watch?v=kkanp0kl_hk
[8] https://docs.nvidia.com/nsight-systems/userguide/index.html
[9] https://www.youtube.com/watch?v=dudgo66iadu
[10] https://dev-discuss.pytorch.org/t/using-nsight-systems-to-profile-gpu-workload/59