使用ncu和nsys cli的笔记,持续更新。

Nsight Compute

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

官方手册

ncu在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__bytesdram__bytes.avgdram__bytes.max等等。

-c被profile的程序运行多少次。

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

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

ncu -c 1 --csv --metrics sm__inst_executed_pipe_lsu.avg.pct_of_peak_sustained_active --page raw --set full ./matrixMul > report2.csv

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 

文章版权归 FindHao 所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明作者 FindHao 和本文原始地址:
https://www.findhao.net/academic/2572.html

Comments

comments powered by Disqus