首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nsight计算中使用的术语

Nsight计算中使用的术语
EN

Stack Overflow用户
提问于 2020-08-13 21:06:41
回答 1查看 693关注 0票数 1

两个问题:

  1. 根据Nsight计算,我的内核是计算界。相对于峰值性能,SM %的利用率为74%,内存利用率为47%。但是,当我查看每个管道利用率时,LSU的利用率要比其他的要高得多(75%比10-15%)。这难道不表明我的内核是内存绑定的吗?如果计算和内存资源的使用与管道使用不一致,我不知道如何解释这些术语。

  1. 调度器每4个周期发出一次,这不意味着我的内核是延迟绑定的吗?人们通常用计算资源和内存资源的使用来定义它。两者之间的关系是什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-15 20:58:03

在CC7.5 GPU上的Nsight计算

SM%由sm__throughput定义,内存%由gpu__compute_memory_throughtput定义

sm_throughput是下列指标的最大值:

  • sm__instruction_throughput
    • sm__inst_executed
    • sm__issue_active
    • sm__mio_inst_issued
    • sm__pipe_alu_cycles_active
    • sm__inst_executed_pipe_cbu_pred_on_any
    • sm__pipe_fp64_cycles_active
    • sm__pipe_tensor_cycles_active
    • sm__inst_executed_pipe_xu
    • sm__pipe_fma_cycles_active
    • sm__inst_executed_pipe_fp16
    • sm__pipe_shared_cycles_active
    • sm__inst_executed_pipe_uniform
    • sm__instruction_throughput_internal_activity

  • sm__memory_throughput
    • idc__request_cycles_active
    • sm__inst_executed_pipe_adu
    • sm__inst_executed_pipe_ipa
    • sm__inst_executed_pipe_lsu
    • sm__inst_executed_pipe_tex
    • sm__mio_pq_read_cycles_active
    • sm__mio_pq_write_cycles_active
    • sm__mio2rf_writeback_active
    • sm__memory_throughput_internal_activity

gpu__compute_memory_throughput是下列指标的最大值:

  • gpu__compute_memory_access_throughput
    • l1tex__data_bank_reads
    • l1tex__data_bank_writes
    • l1tex__data_pipe_lsu_wavefronts
    • l1tex__data_pipe_tex_wavefronts
    • l1tex__f_wavefronts
    • lts__d_atomic_input_cycles_active
    • lts__d_sectors
    • lts__t_sectors
    • lts__t_tag_requests
    • gpu__compute_memory_access_throughput_internal_activity

  • gpu__compute_memory_access_throughput
  • l1tex__lsuin_requests
    • l1tex__texin_sm2tex_req_cycles_active
    • l1tex__lsu_writeback_active
    • l1tex__tex_writeback_active
    • l1tex__m_l1tex2xbar_req_cycles_active
    • l1tex__m_xbar2l1tex_read_sectors
    • lts__lts2xbar_cycles_active
    • lts__xbar2lts_cycles_active
    • lts__d_sectors_fill_device
    • lts__d_sectors_fill_sysmem
    • gpu__dram_throughput
    • gpu__compute_memory_request_throughput_internal_activity

在您的例子中,限制器是sm__inst_executed_pipe_lsu,这是一个指令吞吐量。如果查看区段/SpeedOfLight.py延迟绑定,则定义为sm__throughput和gpu__compute_memory_throuhgput都小于60%。

一些指令管道的吞吐量较低,如fp64、xu和lsu (随芯片而异)。管道使用是sm__throughput的一部分。为了提高业绩,可选办法如下:

  1. 将指令减少到超额订阅的管道,或者
  2. 发出不同类型的指令以使用空的发布周期。

生成击穿

在Nsight Compute 2020.1中,没有一个简单的命令行可以在不运行分析会话的情况下生成列表。现在,您可以使用breakdown:<throughput metric>avg.pct_of_peak_sustained.elapsed收集一个吞吐量度量,并解析输出以获得子度量名称。

例如:

代码语言:javascript
运行
复制
ncu.exe --csv --metrics breakdown:sm__throughput.avg.pct_of_peak_sustained_elapsed --details-all -c 1 cuda_application.exe

生成:

代码语言:javascript
运行
复制
"ID","Process ID","Process Name","Host Name","Kernel Name","Kernel Time","Context","Stream","Section Name","Metric Name","Metric Unit","Metric Value"
"0","33396","cuda_application.exe","127.0.0.1","kernel()","2020-Aug-20 13:26:26","1","7","Command line profiler metrics","gpu__dram_throughput.avg.pct_of_peak_sustained_elapsed","%","0.38"
"0","33396","cuda_application.exe","127.0.0.1","kernel()","2020-Aug-20 13:26:26","1","7","Command line profiler metrics","l1tex__data_bank_reads.avg.pct_of_peak_sustained_elapsed","%","0.05"
"0","33396","cuda_application.exe","127.0.0.1","kernel()","2020-Aug-20 13:26:26","1","7","Command line profiler metrics","l1tex__data_bank_writes.avg.pct_of_peak_sustained_elapsed","%","0.05"
...

关键字breakdown可以在Nsight计算部分文件中使用,以扩展吞吐量度量。这在SpeedOfLight.section中使用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63403203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档