为什么计算吞吐量的值与实际性能/峰值性能不同



我想为我的内核构建一个屋顶线模型。所以我用命令启动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%低得多。

此外,我想收集内核中的FLOPSmemory usage,而不是它们的吞吐量。

所以我的问题是:

  1. SM ThroughputMemory Throughput的真正含义是什么?它们是Peak WorkPeak Traffic的百分比吗?顺便说一下,Peak WorkPeak Traffic分别是Peak PerformancePeak Bandwidth of DRAM,对吧?

  2. 为了得到我的内核的真正的FLOPSCompute(SM) Throughput0,我想把Compute(SM) ThroughputPeak Work相乘,得到real time Performance。然后将CCD_ 24和CCD_ 25相乘得到CCD_。内存使用也是如此。我的方法正确吗?

我已经搜索这个问题两天了,但仍然无法得到明确的答案。

我从这个问题中找到了答案:Nsight Compute中使用的术语简而言之,SM ThroughputMemory 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

相关内容

  • 没有找到相关文章

最新更新