小编Clo*_*ood的帖子

CUDA Profiler:计算内存和计算利用率

我正在尝试使用ubuntu上的CUDA nsight分析器为内存带宽利用率和GPU加速应用程序计算吞吐量利用率的两个整体度量.该应用程序在Tesla K20c GPU上运行.

我想要的两个测量值在某种程度上与此图中给出的值相当: 图一

问题是这里没有给出确切的数字,更重要的是我不知道如何计算这些百分比.

内存带宽利用率

Profiler告诉我,我的GPU的最大全局内存带宽为208 GB/s.

在此输入图像描述

这是指设备内存BW还是全局内存BW?它是全球性的,但第一个对我来说更有意义.

对于我的内核,分析器告诉我设备内存带宽是98.069 GB/s.

在此输入图像描述

假设最大208 GB/s参考设备内存我可以简单地计算内存带宽利用率为90.069/208 = 43%?请注意,此内核多次执行,无需额外的CPU-GPU数据传输.因此系统BW并不重要.

计算吞吐量利用率

我不确定将Compute Throughput Utilization放入数字的最佳方法是什么.我最好的猜测是使用每循环指令到每循环最大指令比.剖析器告诉我最大IPC是7(见上图).

首先,这究竟意味着什么?每个多处理器有192个内核,因此最多有6个活动warp.这不意味着最大IPC应该是6?

分析器告诉我,我的内核已发出IPC = 1.144并执行IPC = 0.907.我应该计算计算利用率为1.144/7 = 16%或0.907/7 = 13%或者没有这些?

这两个测量(内存和计算利用率)是否给出了我的内核使用资源的效率的第一印象?还是应该包含其他重要指标?

附加图表

在此输入图像描述

c++ ubuntu profiling cuda utilization

5
推荐指数
1
解决办法
2034
查看次数

标签 统计

c++ ×1

cuda ×1

profiling ×1

ubuntu ×1

utilization ×1