我想为我的内核构建一个屋顶线模型。所以我用命令启动ncu
ncu--csv--目标进程全部--设置屋顶线mpirun-n 1/run_pselinv_linux_release_v2.0-H H3600.csc-文件/tmpfile
roofline set
收集了足够的数据来构建屋顶线模型。但我无法清楚地理解每个指标的含义。
CCD_ 2由作为CCD_ 4的度量CCD_。我认为这是峰值性能的百分比。但当我用Performance(6855693348.37)
除以Peak Work
(5080428410372(时,我得到了0.13%
,它比0.64%
低得多。
此外,我想收集内核中的FLOPS
和memory usage
,而不是它们的吞吐量。
所以我的问题是:
-
SM Throughput
和Memory Throughput
的真正含义是什么?它们是Peak Work
和Peak Traffic
的百分比吗?顺便说一下,Peak Work
和Peak Traffic
分别是Peak Performance
和Peak Bandwidth of DRAM
,对吧? -
为了得到我的内核的真正的
FLOPS
和Compute(SM) Throughput
0,我想把Compute(SM) Throughput
和Peak Work
相乘,得到real time Performance
。然后将CCD_ 24和CCD_ 25相乘得到CCD_。内存使用也是如此。我的方法正确吗?
我已经搜索这个问题两天了,但仍然无法得到明确的答案。
我从这个问题中找到了答案:Nsight Compute中使用的术语简而言之,SM Throughput
和Memory Throughput
分别是一系列度量中的最大值。所以我只是试图通过他们的名字来理解他们的意思,这是完全错误的。
顺便说一句,收集FLOPS和模型内存使用情况的正确方法是在这个实验室:NVIDIA GPU上的屋顶模型该实验室的方法
时间:
sm__cycles_elaped.avg
FLOP:
DP:sm__sass_thread_inst_executed_op_dd_pred_on.sum+2 xsm__sass_thread_inst_executed_op_dfma_pred_on.sum+sm__sass_thread_inst_executed_op_dmul_pred_on.sum
SP:sm__sass_thread_inst_executed_op_add_pred_on.sum+2 xsm__sass_thread_inst_executed_op_fma_red_on.sum+sm__sass_thread_inst_executed_op_mul_pred_on.sum
HP:sm__sass_thread_inst_executed_op_add_pred_on.sum+2 xsm__sass_thread_inst_executed_op_hfma_pred_on.sum+sm__sass_thread_inst_executed_op_mul_pred_on.sum
张量核心:512 x sm__inst_executed_pipe_Tensor.sum
字节数:
DRAM:DRAM_bytes.sum
L2:lts_t_bytes.sum
L1:l1Text__t_bytes.sum