NVIDIA Nsight Systems 入门及使用

目录

# Nsight Systems 入门

什么是Nsight Systems

用户能用nsys做什么

CUDA Version

Nsight Systems 使用

nsys windows 版本GUI使用步骤

nsys Linux CLI (Command Line Interface)常见命令


# Nsight Systems 入门

 

什么是Nsight Systems
 

NVIDIA Nsight Systems,简称nsys,是一个低开销的系统分析工具。

在本文档中,我们将配置文件的配置对象和用户用来工作并控制配置文件会话的计算机作为主机。 请注意,对于基于x86_64的系统,它们可能位于同一设备上,而对于基于Tegra,ARM或IBM Power的系统,它们将始终是分开的。


此外,将三种不同的活动区分如下:

 - **分析—收集任何性能数据**的过程。Nsight Systems中的性能分析会话通常包括采样和跟踪。
 - **采样—定期停止配置文件**(在配置文件会话期间正在研究的应用程序)的过程,通常用于收集回溯(活动线程的调用堆栈),这使您可以统计地了解每个函数花费了多少时间。
   此外,还可以对硬件计数器进行采样。 当收集到少量样品时,此过程本质上是不精确的。 
 - **跟踪-收集有关概要文件或系统中发生的各种活动**的精确信息的过程。    例如,可以跟踪概要**API的执行**,以提供函数调用的确切时间和持续时间

Nsight Systems在大多数平台上支持的常见功能包括:

  • 使用多种算法(例如帧指针或DWARF数据)对Profilee进行采样并收集回溯。 根据需要构建自上而下,自下而上和平面视图。 此信息有助于确定CPU密集型代码中的性能瓶颈。
  • 采样或跟踪系统电源行为,例如CPU频率。
  • (仅在Nsight Systems嵌入式平台版本上)来自ARM PMU(性能监视单元)的采样计数器。 诸如缓存未命中之类的信息在统计上与函数执行相关。
  • 支持多个窗口。 具有多台监视器的用户可以同时查看多个报告,或在同一报告文件中拥有多个视图。

用户能用nsys做什么

使用Nsight Systems,用户可以:

  • 确定独占CPU的呼叫路径。
  • 确定独占CPU的各个功能(跨不同的调用路径)。
  • 对于Nsight Systems Embedded Platforms Edition,请确定缓存利用率较低的功能。
  • 如果平台支持CUDA,请查看CUDA运行时和驱动程序API调用以及CUDA GPU工作负载的直观表示。
  • Nsight Systems使用CUDA分析工具界面(CUPTI),有关更多信息,请参阅:CUPTI文档。
  • 如果用户使用NVIDIA工具扩展(NVTX)进行注释,请参见NVTX注释的可视表示形式:范围,标记和线程名称。
  • 对于Windows目标,请参见D3D12的直观表示:正在CPU上进行哪些API调用,图形框架,停顿分析以及GPU工作负载(命令列表和调试范围)。
  • 对于x86_64目标,请参见Vulkan的直观表示:正在CPU上进行哪些API调用,图形框架,停顿分析以及Vulkan GPU工作负载(命令缓冲区和调试范围)

 

CUDA Version

  • Nsight Systems支持大多数平台的CUDA 10.0、10.1、10.2和11.0。

  • Nsight Systems on ARM SBSA支持10.2和11.0。

  • 请注意,CUDA版本和驱动程序版本必须兼容。

NVIDIA Nsight Systems 入门及使用_第1张图片

Nsight Systems 使用

nsys windows 版本GUI使用步骤

安装windows版本的的NVIDIA Nsight Systems,下载地址在官网。

安装好后,出现如下页面。可以选择CPU Rows on Top classic mode(默认选项)。

NVIDIA Nsight Systems 入门及使用_第2张图片

接下来,下拉Select target for profiling,会出现:

  • Localhost connections (这里指的就是你的windows电脑本地)
  • SSH connections (这里可以指定服务器(Linux)的位置)
  • configure target (这里可以修改你选定的target位置的配置)

这里先跳过本地选项,直接ssh连接到linux服务器,毕竟大部分的AI模型都是在服务器上去跑。

点击Select target for profiling右边的工具按钮,出现如下页面。点击Create a new connection,进行SSH连接。

NVIDIA Nsight Systems 入门及使用_第3张图片

连接成功之后,出现如下界面:

NVIDIA Nsight Systems 入门及使用_第4张图片

可以对profilin进行设置,有如下设置项:

NVIDIA Nsight Systems 入门及使用_第5张图片

先简单设置第一个Sample target process, 在其中设置服务器上要跑的程序。这里我在HOME目录下,设置要运行的命令是ls(linux的列举命令),然后点击右边的Start (右边也可以设置,等熟悉之后就可看需求来设置)。其他例子,在跑模型的时候,可以设置命令为python train.py等等。

NVIDIA Nsight Systems 入门及使用_第6张图片

命令跑完的结果如下,可以得到一个Report,它是一个.qdrep文件,如果是在Linux CLI下运行nsys得到这个文件,也可以传到windows上用nsys打开来做分析:

这个Report包含5部分内容:

  1. Analysis Summary (分析总结,内容非常全面,包含了Target的详细信息,Process summary, Module summary, Thread summary, Environment Variables, CPU info, GPU info等等)
  2. Timeline View (展示CPU/GPU各个核的工作时间线,一般用来来勘察模型训练或者推理的瓶颈在哪里)
  3. Diagnostics Summary (顾名思义,诊断总结。就是程序在运行中做了什么,有什么warning , error,或者message的,都在这里汇总)
  4. Symbol Resolution Logs(暂时不知道是干嘛的)
  5. Files (执行结果的log 文件:pid_stdout.log,& 执行出错的log 文件pid_stderr.log)

NVIDIA Nsight Systems 入门及使用_第7张图片

简单看看Timeline view。如下,这里有三个CPU核在工作,它们启动和停止的时间可以从timeline上看到。还可以看到下面有三个Thread的时间线。

NVIDIA Nsight Systems 入门及使用_第8张图片

 

nsys Linux CLI (Command Line Interface)常见命令
 

  user@node:/opt/nvidia/nsight-systems-cli/2020.1.1/bin$ nsys
     usage: nsys [--version] [--help]  [] [application] []
    
     The most commonly used nsys commands are:
            profile       Run an application and capture its profile into a QDSTRM file.
            launch        Launch an application ready to be profiled.
            start         Start a profiling session.
            stop          Stop a profiling session and capture its profile into a QDSTRM file.
            cancel        Cancel a profiling session and discard any collected data.
            stats         Generate statistics from an existing QDREP or SQLite file.
            status        Provide current status of CLI or the collection environment.
            shutdown      Disconnect launched processes from the profiler and shutdown the profiler.
            sessions list List active sessions.
            export        Export QDREP file into another format.
            nvprof        Translate nvprof switches to nsys switches and execute collection.
    
     Use 'nsys --help ' for more information about a specific command.
    
     To run a basic profiling session:   nsys profile ./my-application
     For more details see "Profiling from the CLI" at https://docs.nvidia.com/nsight-systems

 

更多请关注公众号:AliceWanderAI


参考资料
https://docs.nvidia.com/nsight-systems/InstallationGuide/index.html 
https://zhuanlan.zhihu.com/p/132582159 
https://cloud.tencent.com/developer/article/1468566


 

你可能感兴趣的:(人工智能,NVIDIA,deep-learning,nvidia,人工智能,深度学习)