Nsight Compute

ncu主要是获取更细粒度的intra kernel的hardware counters。

cu在profile的时候,通过–setction来指定想使用的section。这里的section是指一组hardware counter的集合,可以通过nsightcompute/sections/来看ncu自带的section有哪些,和ncu-ui中的details page的section含义一致。如果未指定section,则按照与默认的set关联的section来收集hw coounters的信息。

–list-sets列出如下列表,可以看到不同的set关联的不同的sections。

$ ncu --list-sets
---------- --------------------------------------------------------------------------- ------- -----------------
Identifier Sections                                                                    Enabled Estimated Metrics
---------- --------------------------------------------------------------------------- ------- -----------------
default    LaunchStats, Occupancy, SpeedOfLight                                        yes     35
detailed   ComputeWorkloadAnalysis, InstructionStats, LaunchStats, MemoryWorkloadAnaly no      157              sis, Occupancy, SchedulerStats, SourceCounters, SpeedOfLight, SpeedOfLight_                          RooflineChart, WarpStateStats
full       ComputeWorkloadAnalysis, InstructionStats, LaunchStats, MemoryWorkloadAnaly no      162              sis, MemoryWorkloadAnalysis_Chart, MemoryWorkloadAnalysis_Tables, Occupancy                          , SchedulerStats, SourceCounters, SpeedOfLight, SpeedOfLight_RooflineChart,                          WarpStateStats
source     SourceCounters                                                              no      47

–query-metrics可以查询并获得ncu支持的所有的hw counters,还有query-metrics-mode可以设置是否展示suffix. 比如 dram__bytes有 dram__bytes.avg,dram__bytes.max等等。

-c profiler运行多少次。

–metrics 尽管ncu支持1400多个counters,但默认的set里仅包含一部分,可以通过这个参数添加自己想要的。可以使用regex来利用正则表达式筛选想要的counters,比如–metrics regex:sm__inst_executed_pipe_,regex:sm__sass_thread_inst_executed_op。如果需要\d需要双斜杠\d。 ncu --list-metrics --query-metrics-mode all获得所有的counters

–page跟ncu-ui的page定义一致。如果只处理profiling出来的数据,raw几乎包含了所有的数值,details包含的是user-friendly 的展示数据。

-k 筛选要跑的kernel,支持正则表达式。

–kernel-name可以指定你输入的kernel名字是function还是mangled的。

ncu --csv -k "^bpnn_adjust_weights_cuda$" --metrics sm__inst_executed_pipe_lsu.avg.pct_of_peak_sustained_active --page raw --set full ./backporp > report2.csv

report使用
从ncu 2020.3.1开始,有了绑定source code到report里的功能(–import-source),可以在服务器端跑出report,然后copy到本地来用ncu-ui打开report查看。

ncu --target-processes all --export output.report --import-source=yes --metrics regex:sm__inst_executed_pipe_,regex:sm__sass_thread_inst_executed_op --page raw --set full ./backporp
拷贝生成的output.report到本地用ncu-ui打开。使用ncu --csv --page raw -i output.report.ncu-rep > output.csv可以导出raw page的counters记录。

source code目前手动从ncu-ui里手动导出。

Nsight System

nsys主要是coarse-grained kernel之间,cpu-gpu之间的信息。

profile matrixmul程序,关注的api是trace模式下的cuda。

nsys profile -t cuda ./matrixMul
csv形式写出到a..csv,如果已经存在a..csv,强制覆盖。

nsys stats -f csv -o a.csv --force-overwrite ./report1.qdrep
输出简要的统计结果到终端,跟直接nvprof跑程序获得结果类似:

nsys profile --stats=true ./vectorAdd
或者直接从生成的qdrep文件中读取

nsys stats ./reports1.qrdep
Pro Tips

简单来说当warp在等待memory access的时候,不算是active,active cycle不会统计这个,但是elapsed会统计。

【CUDA编程】nsight compute和nsight system的使用相关推荐

  1. Nsight Compute使用出现does not have permission to profile错误如何解决

    使用了下面前两种方法都没成功,不适用于我. 方法1:针对nvprof的 解决 nvprof 报错ERR_NVGPUCTRPERM - The user 修改sudoers改了还是不行 方法2:管理员权 ...

  2. CUDA安装失败-Nsight compute安装失败-如何测试CUDA是否安装成功?Reason: VS** was not found

    一.安装背景 CUDA11.1版本,本人的电脑显卡是GTX 1650,显存4GB:第一次安装前下载了vs2017版本并安装成功. 二.安装过程-如何一步步地解决错误? 第一次安装:精简安装,也就是把所 ...

  3. NSight Compute 用户手册(中)

    NSight Compute 用户手册(中) NVIDIA Nsight Compute支持密码和私钥身份验证方法.在此对话框中,选择身份验证方法并输入以下信息: 密码 IP/主机名:目标设备的IP地 ...

  4. Nsight Compute Profilier 分析

    Nsight Compute Profilier 分析 profiler报告包含每次内核启动分析期间收集的所有信息.在用户界面中,它包含一个包含常规信息的标题,以及用于在报告页面或单个收集的启动之间切 ...

  5. NSight Compute 用户手册(下)

    NSight Compute 用户手册(下) 主菜单 文件 新建项目使用"新建项目"对话框创建新的分析项目 Main Menu and Toolbar Information on ...

  6. NSight Compute 用户手册(上)

    NSight Compute 用户手册(上) 非交互式配置文件活动 从NVIDIA Nsight Compute启动目标应用程序 启动NVIDIA Nsight Compute时,将出现欢迎页面.单击 ...

  7. 如何使用Nsight Compute?

    如何使用Nsight Compute? 下图command Line Argunments是指训练或测试命令,Linux下直接用测试或训练命令

  8. Nsight compute ---- Memory Chart

    Nsight compute ---- Memory Chart Memory Chart Memory Table Shared Memory L1/TEX Cache L2 Cache Devic ...

  9. 【转载】cuda编程入门

    目录 1.什么是CUDA 2.为什么要用到CUDA 3.CUDA环境搭建 4.第一个CUDA程序 5. CUDA编程 5.1. 基本概念 5.2. 线程层次结构 5.3. 存储器层次结构 5.4. 运 ...

  10. NVIDIA GPU SM和CUDA编程理解

    SM硬件架构基础 不同架构的变化可以参考: ​​​​​​从AI系统角度回顾GPU架构变迁--从Fermi到Ampere(V1.2) - 知乎 英伟达GPU架构演进近十年,从费米到安培 - 知乎 Vol ...

最新文章

  1. oracle分区属于什么知识,详细讲解Oracle表分区的相关概念及其优点
  2. Memcached Java客户端2.6.1发布
  3. Windows XP下屏蔽Ctrl_Alt_Del键的方法
  4. 最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件
  5. a*算法的优缺点_K-近邻算法以及案例
  6. 【数据库系统设计】关系数据理论(函数依赖、码、范式、模式分解)
  7. 源码安装redis-3.2.11
  8. Linux嵌入式开发_主设备号与次设备号详解
  9. BootStrap中常用样式类
  10. truetype字体怎么转换成普通字体_win10肿么安装truetype字体
  11. 街机游戏模拟器 mame for linux
  12. Exception in thread main java.lang.UnsatisfiedLinkError: no awt in java.library.path:
  13. C++中Duration、Time_point和Clocks
  14. ce修改面板属性_改属性【dnfce修改器吧】_百度贴吧
  15. 自动清理源计算机设备驱动,win10我的电脑中设备和驱动器位置出现空白图标删除不了怎么解决...
  16. shell 编程三剑客之三:awk 详解
  17. 安全模式没有计算机图标不见了怎么办,win10杀毒图标不见了怎么办?win10安全中心图标没了的处理方法...
  18. StringBuilder 拼接去掉最后一个逗号
  19. CentOS7救援模式修复系统丢失文件
  20. 网络编程之listen函数

热门文章

  1. [GRE] 填空机经 Section61-65
  2. Activity-GalleryView
  3. linux 环境下设置Kettle的转换,作业定时执行简单操作
  4. CopyBeanUtils坑,xxDto cannot be cast to xxxEntity 类型转化错误
  5. Windows 7 SP1 旗舰版 MSDN原版
  6. Java集合类源码详解
  7. 《深入浅出统计学》读书笔记
  8. 28天肝完阿里面试通关宝典,含答案解析
  9. 请自行检查是否安装VC9运行库??
  10. 怎么改变linux的语言环境,更改Linux语言环境