Nsight 学习笔记

参考视频:【CUDA进阶】深入理解 Nsight System 和 Nsight Compute

1. Overview

  • Nsight Systems:一个系统范围的性能分析工具
  • Nsight Compute:一个用于 CUDA 应用的交互式内核分析器

2. Nsight System

2.1. Overview

系统范围的应用算法调优

  • 专注于应用的算法——一种独特的视角
  • 能够捕捉 CPU 和 GPU 上的事件及其交互

定位优化机会

  • 查看未使用的CPU和GPU时间的空隙,以及同步的开销

在多个CPU和GPU之间平衡工作负载

  • CPU算法、利用率和线程状态
  • GPU流、内核、内存传输等

支持Linux和Windows,x86-64和Tegra。仅支持Mac作为主机。

2.2. Key Features

Compute

  • CUDA API. Kernel launch and execution correlation
  • Libraries: cuBLAS, cuDNN, TensorRT
  • OpenACC

Graphics

  • Vulkan, OpenGL, DX11, DX12, DXR, V-sync

OS Thread state and CPU utilization, pthread, file I/O, etc.

User annotations API (NVTX)

2.3. Cpu Threads: Thread Activities

得到对每个线程活动的总览

  • Which core the thread is running and the utilization
  • CPU state and transition
  • OS runtime libraries usage: pthread, file I/O, etc.
  • API usage: CUDA, cuDNN, cuBLAS, TensorRT, …

2.4. OS Runtime Libraries

  • 识别线程被阻塞的时间段及其原因
  • 定位潜在的冗余同步
  • 追踪耗时调用至操作系统运行时库(栈)

2.5. CUDA API

跟踪操作系统线程上的CUDA API调用

  • 查看 kernel 何时被调度
  • 查看内存操作何时开始
  • 定位对应的 CUDA 工作负载在 GPU 上的情况

2.6. NVTX

  • NVIDIA工具扩展(NVTX)用于在时间线中标注应用程序的逻辑
  • 帮助在算法上下文中理解性能分析器的输出

使用方法:

  • C++
    • 包含头文件:#include "nvToolsExt.h"
    • 调用API函数:在源代码中调用NVTX的API函数。
    • 在编译器命令行中链接NVTX库:-lnvToolsExt
  • 也支持 Python

示例:

#include "nvToolsExt.h"
...
void myfunction( int n, double * x )
{
    nvtxRangePushA("init_host_data");
    //initialize x on host
    init_host_data(n,x,x_d,y_d);
    nvtxRangePop();
}
...

3. Nsight Compute

交互式内核分析器

  • 图形化分析报告,例如 SOL(SM Occupancy Level)和内存图表
  • 基于基准对一个或多个报告的结果进行比较
  • 快速数据收集

UI 可执行文件名为 nv-nsight-cu,命令行工具为 nv-nsight-cu-cli
支持的 GPU 架构:Volta、Turing、Ampere

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇LeetCode C++ 笔记
下一篇 C++ Primer 笔记