Nsight System模型性能分析工具入坑记录
起因
在windows环境下使用torch的profiler+TensorBoard试图进行模型的性能分析,发现在TB上只有CPU的信息,缺少GPU的信息,试图去社区寻找解决方案,发现早在22年该问题就被提出来了,但是帖子里只有提问而无人解答。所以至此也一直无法解决(本人能力有限,等一个大佬救救孩子)。。。。原帖url:Pytorch官方社区的原帖
于是乎,改变思路转而换成Nsight System进行。但是关于ns用于性能分析的教程较少,我也是啃了一上午官方文档才勉强实现需求。
关于Nsight System
Nsight Systems是一款由NVIDIA开发的性能分析工具,旨在帮助开发人员优化并深入了解其CUDA应用程序的性能特征。以下是关于Nsight Systems的简要介绍:
-
用途:
- Nsight Systems用于分析和优化CUDA应用程序的性能,帮助开发人员找到性能瓶颈并实现优化。
-
功能特点:
- 提供可视化的性能分析工具,用于捕获和分析CUDA应用程序的执行情况。
- 支持查看CUDA核心活动、内核执行时间、内存操作、调用堆栈等详细信息。
- 提供时间线视图、统计信息和图表,帮助用户深入了解应用程序的性能表现。
-
适用范围:
- 适用于CUDA应用程序的性能分析和优化。
- 可用于不同领域的GPU加速应用程序的性能调优,包括深度学习、科学计算、图形渲染等。
-
工作流程:
- 用户可以使用Nsight Systems执行性能分析命令,生成性能分析文件。
- 分析文件可以进一步在Nsight Systems图形化界面中打开,并进行性能分析和优化。
-
优势:
- 提供全面的性能分析工具,帮助用户发现应用程序的性能瓶颈。
- 可视化展示分析结果,方便用户理解和解决性能问题。
- 支持详细的时间线视图和统计信息,帮助用户精确定位性能瓶颈。
总的来说,Nsight Systems是一款强大的性能分析工具,专为CUDA应用程序开发者设计,帮助他们深入了解和优化应用程序的性能,提高应用程序的效率和性能表现。
下载并安装NS
- 官网下载地址
- 不想出去并登录nvidia的话也可以直接下载这个链接:windows_x86_2024.2.1.106-3403790.msi
- 正常选择安装位置,一路next就好
正片:性能分析流程
- 我们需要用到两个程序:
- nsys.exe(位于:安装路径/NVIDIA Corporation\Nsight Systems 2024.2.1\target-windows-x64)
- nsys-ui.exe(位于:安装路径/NVIDIA Corporation\Nsight Systems 2024.2.1\host-windows-x64)
- 将nsys.exe加入到环境变量,方便命令行直接调用
- 第一步需要我们编写一个py脚本引入我们需要的模型并执行几轮推理,用于给nsys调用收集设备信息。(这是我的,我需要分析MobileNetV2模型)
import torch
import torchvision.transforms as transforms
from torchvision import datasets
from torch.utils.data