使用Nsight工具分析优化应用程序

GPU云服务器 GPU

  • 线上GPU驱动选装发布记录
  • 快速入门
  • 产品定价
  • 功能发布记录
  • 产品描述
    • 产品优势
    • 产品介绍
    • 应用场景
    • GPU卡详情
    • 实例规格
      • GPU渲染型
      • 弹性高性能计算集群
      • GPU计算型
      • GPU实例命名规则
  • AI加速套件AIAK
    • AIAK推理加速组件
  • 典型实践
    • 基于Nvidia Clara Parabricks的基因测序加速
    • 基于GPU云服务器部署NIM
    • NCCL环境搭建
    • 使用TensorRT加速深度学习推理
    • 使用Nsight工具分析优化应用程序
    • 使用RAPIDS加速数据科学任务
    • 部署满血版DeepSeek-R1模型SGlangServer(单机&多机部署&参数建议)
    • 搭建PaddlePaddle环境完成文本情感分类
    • 基于GPU实例部署NGC环境
  • 操作指南
    • 镜像使用
    • 查看GPU云服务器监控
    • 申请GPU物理服务器
    • 创建GPU实例
    • 数据上传
    • 管理GPU实例
    • 安装GPU驱动
      • 为GPU实例安装GRID驱动(Windows)
      • 手动安装GPU驱动以及Cuda(Windows)
      • 手动安装GPU驱动以及Cuda(Linux)
      • 自动安装GPU驱动及CUDA(推荐)
  • 常见问题
    • 如何检测RDMA常见故障
    • 一般类问题
    • 如何检测GPU常见故障
所有文档
menu
没有找到结果,请重新输入

GPU云服务器 GPU

  • 线上GPU驱动选装发布记录
  • 快速入门
  • 产品定价
  • 功能发布记录
  • 产品描述
    • 产品优势
    • 产品介绍
    • 应用场景
    • GPU卡详情
    • 实例规格
      • GPU渲染型
      • 弹性高性能计算集群
      • GPU计算型
      • GPU实例命名规则
  • AI加速套件AIAK
    • AIAK推理加速组件
  • 典型实践
    • 基于Nvidia Clara Parabricks的基因测序加速
    • 基于GPU云服务器部署NIM
    • NCCL环境搭建
    • 使用TensorRT加速深度学习推理
    • 使用Nsight工具分析优化应用程序
    • 使用RAPIDS加速数据科学任务
    • 部署满血版DeepSeek-R1模型SGlangServer(单机&多机部署&参数建议)
    • 搭建PaddlePaddle环境完成文本情感分类
    • 基于GPU实例部署NGC环境
  • 操作指南
    • 镜像使用
    • 查看GPU云服务器监控
    • 申请GPU物理服务器
    • 创建GPU实例
    • 数据上传
    • 管理GPU实例
    • 安装GPU驱动
      • 为GPU实例安装GRID驱动(Windows)
      • 手动安装GPU驱动以及Cuda(Windows)
      • 手动安装GPU驱动以及Cuda(Linux)
      • 自动安装GPU驱动及CUDA(推荐)
  • 常见问题
    • 如何检测RDMA常见故障
    • 一般类问题
    • 如何检测GPU常见故障
  • 文档中心
  • arrow
  • GPU云服务器GPU
  • arrow
  • 典型实践
  • arrow
  • 使用Nsight工具分析优化应用程序
本页目录
  • 概览
  • 需求场景
  • 配置步骤
  • 环境准备
  • Nsight System使用示例
  • 相关产品(必选)

使用Nsight工具分析优化应用程序

更新时间:2025-08-21

概览

Nsight是NVIDIA面相开发者提供的开发工具套件,能提供深入的跟踪、调试、评测和分析,以优化跨 NVIDIA GPU和CPU的复杂计算应用程序。Nsight主要包含Nsight System、Nsight Compute、Nsight Graphics三部分。

  • Nsight System

所有与NVIDIA GPU相关的程序开发都可以从Nsight System开始以确定最大的优化机会。Nsight System给开发者一个系统级别的应用程序性能的可视化分析。开发人员可以优化瓶颈,以便在任意数量或大小的CPU和GPU之间实现高效扩展。详情可访问NVIDIA官网。

  • Nsight Compute

Nsight Compute是一个CUDA应用程序的交互式kernel分析器。它通过用户接口和命令行工具的形式提供了详细的性能分析度量和API调试。Nsight Compute还提供了定制化的和数据驱动的用户接口和度量集合,可以使用分析脚本对这些界面和度量集合进行扩展,以获得后处理的结果。详情可访问NVIDIA官网。

  • Nsight Graphics

Nsight Graphics是一个用于调试、评测和分析Microsoft Windows和Linux上的图形应用程序。它允许您优化基于Direct3D 11, Direct3D 12, DirectX,Raytracing 1.1, OpenGL,Vulkan和KHR Vulkan Ray Tracing Extension的应程序的性能。详情可访问NVIDIA官网。

截屏2022-09-29 下午3.36.09.png

需求场景

  • 人工智能训练性能分析
  • 图形渲染的性能分析

配置步骤

环境准备

此次典型实践通过在云端进行人工智能训练,并将运算结果导出并发送给本地进行离线Nsight System分析,并快速优化训练性能。

  • 本地:可以连接到Internet的PC或者笔记本电脑
  • 云端:创建并挂载EIP的GPU云服务器

创建GPU云服务器时通过自定义驱动或者使用GPU镜像安装后即可自动安装Nisght System,如需手动安装可访问Nsight System的下载地址,根据本地和云端的运行环境分别下载对应的版本。

Nsight System使用示例

以手写数字数据库MNIST作为训练数据集,使用PyTorch框架进行神经网络训练。通过Nsight System对训练过程进行性能分析,进而找到性能瓶颈,指导优化训练过程。

1、下载训练所需的数据集和脚本 数据集采用MNIST,训练脚本我们采用该位置的PyTorch代码,基于单块NVIDIA Volta GPU我们将完成多batches和epochs的训练。一次完整的迭代过程包括如下几个方面:

  • 从磁盘载入数据
  • 数据加载到GPU设备端
  • 前向传播
  • 反向传播

运行以下命令,可完成一次训练,本次实践以bcc.gn3.c10m80.1v100-32g实例为例,约花费90s左右。

Plain Text
1python main.py

2、利用Nsight system进行性能分析

(可选)开发者可通过添加NVIDIA Tools Extension(NVTX);来对应用程序逻辑上的时间线进行注释,帮助分析人员理解应用算法的上下文逻辑,在main.py中的训练代码部分增加nvtx函数如下: 截屏2022-09-29 下午3.22.57.png 通过Nsight System的命令行方式,生成分析结果文件:

Plain Text
1nsys profile –t cuda,osrt,nvtx –o baseline –w true python main.py

在这个例子中,采用的参数解释如下:

  • -t 后面跟定的参数是我们要追踪的API,即需要CUDA API,OS runtime API以及NVTX API
  • -o 给定的是输出的文件名称
  • -w 后面表明是或否要在命令行中同时输出结果
  • python main.py为程序的执行命令

将导出的baseline输出文件下载到本地,并拖拽到本地的Nsight System窗口即可获取性能结果展示,示例如下:

截屏2022-09-29 下午3.26.59.png 可以看到,通过产生的分析文件,我们发现训练的过程中,有很大一段时间GPU都处于空闲状态。

3、性能优化 可以发现,GPU空闲状态主要是因为CPU在处理数据加载耗时过多。我们可以对收据加载进行优化,优化的方式如下: 原有的数据加载采用的是一个CPU worker 线程:

Plain Text
1kwargs = {'num_workers': 1, 'pin_memory': True} if use_cuda else {}

我们可以将num_workers的数量调大,这里我们调整为8

Plain Text
1kwargs = {'num_workers': 8, 'pin_memory': True} if use_cuda else {}

重新按照步骤2执行,可观察到如下结果: 截屏2022-09-29 下午3.29.56.png

可以发现,经过优化之后,数据加载的时间明显缩短了。整体的训练时间也从原来的90s变成了21s,获得了显著的加速效果。

相关产品(必选)

GPU云服务器、弹性公网IP

上一篇
使用TensorRT加速深度学习推理
下一篇
使用RAPIDS加速数据科学任务