NVIDIA Nsight™ Systems 是一款系统级性能分析工具,旨在实现应用算法的可视化,找出程序中最值得优化的"瓶颈",并进行调整以跨任意数量或大小的 CPU 和 GPU (从大型服务器到最小的系统级芯片 (SoC)) 进行高效扩展。
官网介绍可以查看这里:https://developer.nvidia.cn/nsight-systems
Nsight Systems 在时间轴上可视化系统工作负载指标,并提供工具来帮助开发者检测、理解和解决性能问题。
Nsight Systems工具特点
1.分析系统:Nsight Systems 在统一的时间轴上可视化无偏的系统级活动数据,允许应用程序开发者调查相关性、依赖关系、活动、瓶颈和资源分配,以确保硬件组件协调工作。2.分析性能:Nsight Systems 提供低噪性能分析,可将用于实现优化的其他隐藏的事件层和指标可视化,包括 CPU 并行化和核心利用率、GPU 流多处理器 (SM) 优化、系统工作负载和 CUDA® 库追踪、网络通信、操作系统交互等。
3.跨平台扩展:Nsight Systems 是一款通用工具,用于在 NVIDIA 平台上开发本地或云端应用程序。从 NVIDIA DGX™ 到 NVIDIA RTX™ 工作站,包括适用于汽车的 NVIDIA DRIVE® 以及适用于边缘 AI 和机器人的 NVIDIA Jetson™,可跨各种 NVIDIA 平台进行扩展。Nsight Systems 可为优化 AI、高性能计算 (HPC) 、专业可视化和游戏应用提供宝贵见解。
Nsight Systems工具功能
1.可视化 CPU-GPU 交互Nsight Systems 会锁定目标应用,以便在时间轴中显示 GPU 和 CPU 活动、事件、注释、吞吐量和性能指标。由于开销较低,这些数据可以准确地并行可视化,便于理解。GPU 工作负载与应用内 CPU 事件进一步关联,因此可以轻松识别和修复性能障碍。
2.跟踪 GPU 活动
为进一步探索 GPU,切换 GPU 指标采样将绘制低级输入/ 输出 (IO) 活动,例如 PCIe 吞吐量,NVIDIA NVLink® 以及动态随机访问内存 (DRAM) 活动。GPU 指标采样还可公开 SM 利用率、Tensor Core 活动、指令吞吐量和线程束占用率。可以随时跟踪每个工作负载及其 CPU 来源,以支持性能调优。
3.追踪 GPU 工作负载
对于计算任务,Nsight Systems 支持研究 CUDA API 和追踪 CUDA 库,包括 cuBLAS、cuDNN 和 NVIDIA TensorRT™。对于图形计算,Nsight Systems 支持分析 Vulkan、OpenGL、DirectX 11、DirectX 12、DXR 和 NVIDIA OptiX™ API。
4.加速多节点性能
Nsight Systems 支持多节点分析,可解决数据中心和集群规模的性能限制问题。多节点分析自动诊断多个节点的性能限制。此外,网络指标与 Python 回溯采样共同描绘了跨 GPU、CPU、DPU 和节点间通信的全貌。
5.针对 AI 和深度学习优化 Python
Nsight Systems 可帮助您编写能够更大限度地提高 GPU 利用率的 Python 应用程序。借助回溯和自动调用堆栈采样,您可以微调深度学习应用程序的性能。
此外,通过与 Jupyter Lab 集成,您可以直接在 Jupyter 中分析 Python 和其他受支持的语言,包括使用完整的 Nsight Systems GUI 进行详细分析。
6.检测帧卡顿和瓶颈
Nsight Systems 会自动检测缓慢帧 (通过突出显示高于目标的帧时间) 以及局部卡顿帧 (通过突出显示时间高于相邻帧的帧) 。它还会自动报告每帧的 CPU 时间,以及可能导致卡顿的 API 调用。这为开发者提供了大量信息,以找到和解决掉帧和帧定时不一致的原因。
Nsight Systems工具安装
目前Capability 8.0以上的卡已经不支持使用nvprof来收集分析程序使用GPU相关数据和指标了,官方推荐使用Nsight Systems来分析。
下载地址:https://developer.nvidia.com/nsight-systems/get-started
wget https://developer.nvidia.com/downloads/assets/tools/secure/nsight-systems/2025_3/NsightSystems-linux-public-2025.3.1.90-3582212.run
chmod +x NsightSystems-linux-public-2025.3.1.90-3582212.run
根据提示进行安装
./NsightSystems-linux-public-2025.3.1.90-3582212.run
Nsight Systems工具使用方法
命令帮助如下:
usage: nsys [--version] [--help] <command> [<args>] [application] [<application args>]
最常用的nsys命令参数有:
profile 运行应用程序并将其概要文件捕获到nsys-rep文件中。
launch 启动准备进行分析的应用程序。
start 启动一个分析会话。
stop 停止分析会话并将其概要文件捕获到nsys-rep文件中。
cancel 取消分析会话并丢弃所有收集到的数据。
service 启动Nsight Systems数据服务。
stats 从现有的nsys-rep或SQLite文件生成统计信息。
status 提供当前CLI或采集环境的状态。
shutdown 断开已启动进程与分析程序的连接,并关闭分析程序。
sessions list 列出活动会话列表。
export 将nsys-rep文件导出为其他格式。
analyze 识别nsys-rep或SQLITE文件中的优化机会。
recipe 运行用于多节点分析的配方。
nvprof 将nvprof交换机转换为nsys交换机并执行收集。
Nsight Systems工具简单使用
后面我们来简单使用下。
nsys profile --trace=cuda python flops.py
24.281660237666674
Generating '/tmp/nsys-report-0638.qdstrm'
[1/1] [========================100%] report1.nsys-rep
Generated:
/root/shared-nvme/report1.nsys-rep
然后会在上述提示路径下生成一个report1.nsys-rep文件,我们可以使用stats命令查看详情
nsys stats report1.nsys-rep
后面有空再介绍下输出信息和字段意思。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1061
评论列表