我想为我的内核建立一个屋顶模型。因此,我使用命令启动ncu。
目标-处理所有设置的roofline mpirun -n 1./run_pselinv_linux_ -H _v2.0-H H3600.csc -file ./tmpfile
roofline set
收集足够的数据来构建roofline模型。但我不清楚每个指标的含义。
Compute(SM) Throughput
是由度量sm__throughput.avg.pct_of_peak_sustained_elapsed
(即0.64%
)收集的。我认为这是最佳表现的百分比。但是当我把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
和memory usage
,我想将Compute(SM) Throughput
和Peak Work
相乘以得到real time Performance
。然后将real time Performance
和elapsed time
相乘得到FLOPS
。内存的使用也是如此。我的方法正确吗?我已经找了两天这个问题了,但还是找不到一个明确的答案。
发布于 2022-09-15 07:21:39
我从这个问题中找到了答案:简而言之,Nsight计算中使用的术语、SM Throughput
和Memory Throughput
分别是一系列度量的最大值。所以我试着用他们的名字来理解他们的意思,这是完全错误的。
顺便说一句,收集模型的触发器和内存使用情况的正确方法是在这个实验室:NVIDIA GPU上的Roofline模型这个实验室的方法
时间: sm__cycles_elapsed.avg / sm__cycles_elapsed.avg.per_second 拖鞋: DP: sm__sass_thread_inst_executed_op_dadd_pred_on.sum +2 x sm__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_fadd_pred_on.sum +2 x sm__sass_thread_inst_executed_op_ffma_pred_on.sum + sm__sass_thread_inst_executed_op_fmul_pred_on.sum 惠普: sm__sass_thread_inst_executed_op_hadd_pred_on.sum +2 x sm__sass_thread_inst_executed_op_hfma_pred_on.sum + sm__sass_thread_inst_executed_op_hmul_pred_on.sum 张量核: 512 x sm__inst_executed_pipe_tensor.sum 字节: 德拉姆: dram__bytes.sum L2: lts__t_bytes.sum L1: l1tex__t_bytes.sum
https://stackoverflow.com/questions/73679977
复制相似问题