【CUDA编程】nsight compute和nsight system的使用
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的使用相关推荐
- Nsight Compute使用出现does not have permission to profile错误如何解决
使用了下面前两种方法都没成功,不适用于我. 方法1:针对nvprof的 解决 nvprof 报错ERR_NVGPUCTRPERM - The user 修改sudoers改了还是不行 方法2:管理员权 ...
- CUDA安装失败-Nsight compute安装失败-如何测试CUDA是否安装成功?Reason: VS** was not found
一.安装背景 CUDA11.1版本,本人的电脑显卡是GTX 1650,显存4GB:第一次安装前下载了vs2017版本并安装成功. 二.安装过程-如何一步步地解决错误? 第一次安装:精简安装,也就是把所 ...
- NSight Compute 用户手册(中)
NSight Compute 用户手册(中) NVIDIA Nsight Compute支持密码和私钥身份验证方法.在此对话框中,选择身份验证方法并输入以下信息: 密码 IP/主机名:目标设备的IP地 ...
- Nsight Compute Profilier 分析
Nsight Compute Profilier 分析 profiler报告包含每次内核启动分析期间收集的所有信息.在用户界面中,它包含一个包含常规信息的标题,以及用于在报告页面或单个收集的启动之间切 ...
- NSight Compute 用户手册(下)
NSight Compute 用户手册(下) 主菜单 文件 新建项目使用"新建项目"对话框创建新的分析项目 Main Menu and Toolbar Information on ...
- NSight Compute 用户手册(上)
NSight Compute 用户手册(上) 非交互式配置文件活动 从NVIDIA Nsight Compute启动目标应用程序 启动NVIDIA Nsight Compute时,将出现欢迎页面.单击 ...
- 如何使用Nsight Compute?
如何使用Nsight Compute? 下图command Line Argunments是指训练或测试命令,Linux下直接用测试或训练命令
- Nsight compute ---- Memory Chart
Nsight compute ---- Memory Chart Memory Chart Memory Table Shared Memory L1/TEX Cache L2 Cache Devic ...
- 【转载】cuda编程入门
目录 1.什么是CUDA 2.为什么要用到CUDA 3.CUDA环境搭建 4.第一个CUDA程序 5. CUDA编程 5.1. 基本概念 5.2. 线程层次结构 5.3. 存储器层次结构 5.4. 运 ...
- NVIDIA GPU SM和CUDA编程理解
SM硬件架构基础 不同架构的变化可以参考: 从AI系统角度回顾GPU架构变迁--从Fermi到Ampere(V1.2) - 知乎 英伟达GPU架构演进近十年,从费米到安培 - 知乎 Vol ...
最新文章
- oracle分区属于什么知识,详细讲解Oracle表分区的相关概念及其优点
- Memcached Java客户端2.6.1发布
- Windows XP下屏蔽Ctrl_Alt_Del键的方法
- 最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件
- a*算法的优缺点_K-近邻算法以及案例
- 【数据库系统设计】关系数据理论(函数依赖、码、范式、模式分解)
- 源码安装redis-3.2.11
- Linux嵌入式开发_主设备号与次设备号详解
- BootStrap中常用样式类
- truetype字体怎么转换成普通字体_win10肿么安装truetype字体
- 街机游戏模拟器 mame for linux
- Exception in thread main java.lang.UnsatisfiedLinkError: no awt in java.library.path:
- C++中Duration、Time_point和Clocks
- ce修改面板属性_改属性【dnfce修改器吧】_百度贴吧
- 自动清理源计算机设备驱动,win10我的电脑中设备和驱动器位置出现空白图标删除不了怎么解决...
- shell 编程三剑客之三:awk 详解
- 安全模式没有计算机图标不见了怎么办,win10杀毒图标不见了怎么办?win10安全中心图标没了的处理方法...
- StringBuilder 拼接去掉最后一个逗号
- CentOS7救援模式修复系统丢失文件
- 网络编程之listen函数