我想为我的内核建立一个屋顶模型。因此,我使用命令启动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
复制相似问题