在 VS2010 中使用 Nvidia NSight 进行 CUDA 性能分析 - 时间线上的片段

Posted

技术标签:

【中文标题】在 VS2010 中使用 Nvidia NSight 进行 CUDA 性能分析 - 时间线上的片段【英文标题】:CUDA Perfomance Profiling with Nvidia NSight in VS2010 - segment on the time line 【发布时间】:2013-04-23 23:17:45 【问题描述】:

我想知道,假设我只调用了一个内核,在应用程序跟踪报告的时间线视图中,

处理 -> CUDA -> 计算

我可以在时间线窗口中看到的每个片段都代表执行操作的扭曲吗?如果是,有没有办法让我确切地看到有多少线程参与了这个操作? (我假设它不一定是我在启动内核时指定的数字)

【问题讨论】:

【参考方案1】:

在 Nsight Visual Studio 版本中,Process\CUDA\Context\Compute 行中的每个范围都是内核启动。

范围开始时间戳是执行 flatThreadIdx = 0 的第一条指令的时间。 范围结束时间戳是内核的完成。

Nsight 时间线不会显示内核级别以下的信息(线程块、warp 或线程),因为这将是大量数据。启动的网格尺寸和块尺寸可在工具提示、时间线底部的相关窗格和 CUDA 启动报告页面中找到。

Nsight VSE Profile CUDA 应用程序活动可以收集每条指令计数器,这些计数器可用于查看在应用程序中执行每条指令的线程数。为了收集这个,将 Experiments to Run 下拉菜单设置为 All 或将其设置为 Custom 并选择 Instruction Count 实验。源视图报告页面将包含已执行指令和已执行线程指令的列。或者,您可以配置指令计数实验以收集每条指令的活动掩码直方图和谓词直方图。

【讨论】:

以上是关于在 VS2010 中使用 Nvidia NSight 进行 CUDA 性能分析 - 时间线上的片段的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio 2010 在 Nvidia GEFORCE 上的 OpenCL 代码

Nvidia Nsight - 如何连接到本地主机?

windows7 64位机上CUDA7 0配置及在VS2010中的简单使用举例

需要为 CPU 和 GPU 平台安装 opencl?

OpenCL:NVIDIA 的向量寄存器 (float4,float8,..) VS Intel 的向量寄存器

在VS 2010中使用 VS2013的解决方案