如何修复 Nsight 分析器中的“低内核并发”警告?

     2023-03-23     266

关键词:

【中文标题】如何修复 Nsight 分析器中的“低内核并发”警告?【英文标题】:How to fix 'Low Kernel Concurrency' warning in Nsight profiler? 【发布时间】:2020-01-15 20:34:19 【问题描述】:

我正在尝试使用 Nsight eclipse 分析器中的内核调用来分析 cuda 程序,但我收到以下警告:'低内核并发,两个内核并行执行的时间百分比很低'。当我运行程序时,结果显示内核是并行运行的。

我检查了一些其他简单的 cuda 代码,结果是一样的。我还检查了这个问题: Profile concurrent CUDA kernels 它说应用程序中的所有并发内核在分析时都被序列化,如果这是正确的,为什么我会收到这个警告? 这是代码的内核调用部分:

cudaProfilerStart();
Kernel <<<BlockNum, ThreadNum>>>();
cudaProfilerStop();

【问题讨论】:

我建议您重新阅读链接到的答案。它没有说明你声称它做了什么。 对于启动单个内核或没有并行运行内核的应用程序,您未显示的代码可能就是这种情况(您显示的 3 行还不够),这个消息是正常的,可以忽略。可以预料,如果您的应用程序没有启动可以同时运行的内核,您将收到此消息。您可能还会看到其他预期的消息,例如“低 GPU 利用率”、“低计算/复制重叠”等。这些都取决于您的应用程序设计,并且对于您的应用程序可能是正常的/预期的。 【参考方案1】:

对于您显示的代码:

cudaProfilerStart();
Kernel <<<BlockNum, ThreadNum>>>();
cudaProfilerStop();

您只运行一个内核。仅使用单个内核是不可能观察内核并发性的。要消除 Nsight 分析器中的“低内核并发”警告,您需要运行一个实际启动 2 个或更多同时运行的内核的代码。仅启动单个内核的代码无法做到这一点。

如果您想见证内核并发,请尝试运行 concurrentKernels CUDA sample code。

关于你的问题中的这个陈述:

我还检查了这个问题:Profile concurrent CUDA kernels,它说应用程序中的所有并发内核在分析时都被序列化了

不,这不是它所说的,我建议你重新阅读它。这是答案中第 1 点所说的内容:

    只做追踪。如果您不指定 --metrics 或 --events,nvprof 将仅执行跟踪运行。 在这种情况下,nvprof 将同时运行内核,但您只会获得内核计时 - 而不是指标/事件数据。

Nsight Eclipse 中内置的分析工具基本上是 NVIDIA Visual Profiler - nvvp。关于并发性,它的行为类似。它可以在时间轴上捕获和显示内核并发。如果您在启动该工具时选择了配置并发内核的选项,那么对于时间线捕获部分,它可以显示并发内核。同样,您可以使用concurrentKernels 示例代码来尝试一下。 Here 是同时运行的内核的可视化分析器显示示例(Nsight Eclipse 分析器基本上就是可视化分析器)。

【讨论】:

NSight Profiler 信号 139

...2-12-3101:28:29【问题描述】:我正在尝试使用NSight中的内置分析器来分析我的程序,但分析会话在启动后立即终止,并且我收到反馈“警告:应用程序收到信号139”。这是什么意思?我还收到以下错误消息:无法读取整个会话时间... 查看详情

Nsight 分析器显示的“其他”问题停顿原因是啥?

】Nsight分析器显示的“其他”问题停顿原因是啥?【英文标题】:Whatare"Other"IssueStallReasonsdisplayedbytheNsightprofiler?Nsight分析器显示的“其他”问题停顿原因是什么?【发布时间】:2013-02-1503:22:33【问题描述】:我有一个内... 查看详情

Nsight 分析器显示的“其他”问题停顿原因是啥?

】Nsight分析器显示的“其他”问题停顿原因是啥?【英文标题】:Whatare"Other"IssueStallReasonsdisplayedbytheNsightprofiler?Nsight分析器显示的“其他”问题停顿原因是什么?【发布时间】:2013-02-1503:22:33【问题描述】:我的内核在CC... 查看详情

未显示已实现的占用列是 Nsight 分析结果

】未显示已实现的占用列是Nsight分析结果【英文标题】:AchievedOccupancycolumnisnotshownisNsightProfilingresult【发布时间】:2020-10-1609:53:37【问题描述】:我遇到了一个对我来说非常奇怪的问题。我在Nsight性能分析输出中看不到达到的占... 查看详情

Nsight Compute 如何确定/显示共享内存指标?

】NsightCompute如何确定/显示共享内存指标?【英文标题】:HowdoesNsightComputedetermine/displaysharedmemorymetrics?【发布时间】:2020-05-2711:55:49【问题描述】:我正在了解CUDA中的__shared__内存,但我对NsightCompute如何显示共享内存统计信息感... 查看详情

Nsight + Visual Studio 上缺少“开始性能分析”按钮

】Nsight+VisualStudio上缺少“开始性能分析”按钮【英文标题】:"StartPerformanceAnalysis"buttonmissingonNsight+VisualStudio【发布时间】:2021-07-1411:20:41【问题描述】:我通常调试我的内核并使用“开始性能分析”按钮检查时间。它显... 查看详情

Nsight Compute 说:“此设备不支持分析” - 为啥?

】NsightCompute说:“此设备不支持分析”-为啥?【英文标题】:NsightComputesays:"Profilingisnotsupportedonthisdevice"-why?NsightCompute说:“此设备不支持分析”-为什么?【发布时间】:2021-12-0412:50:25【问题描述】:我有一台配备NVIDAGT... 查看详情

如何使用 Nsight 调试(GLSL)着色器?

】如何使用Nsight调试(GLSL)着色器?【英文标题】:Howtodebug(GLSL)shadersusingNsight?【发布时间】:2017-01-2403:41:00【问题描述】:如何使用Nsight调试glsl着色器?我正在使用NsightVisualStudio版本5.2。我试过使用NsightVisualStudioEdition5.1。这... 查看详情

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

】NvidiaNsight-如何连接到本地主机?【英文标题】:NvidiaNsight-howtoconnecttolocalhost?【发布时间】:2013-01-2419:00:10【问题描述】:我正在尝试将“localhost”设置为Nsight的连接名称(我在VS2010上使用CUDA4.2和Nsight2.2)但是有类似“localhost... 查看详情

如何减少此代码中的银行冲突?

】如何减少此代码中的银行冲突?【英文标题】:HowcanIdiminishbankconflictsinthiscode?【发布时间】:2012-12-1801:16:11【问题描述】:当Nsight分析时,这段CUDA代码报告了很多银行冲突。第一个sn-p包含常量定义和内核调用://Frontupdaterelate... 查看详情

如何在 VS 2010 中使用 Nvidia NSight 查看 CUDA 线程值?

】如何在VS2010中使用NvidiaNSight查看CUDA线程值?【英文标题】:HowtoseeCUDAthreadvalueusingNvidiaNSightinVS2010?【发布时间】:2013-01-2518:26:35【问题描述】:我想知道有没有办法查看给定内核中的所有变量值,例如,对于threadIdx.x=1,它当前... 查看详情

如何从远程 NSight 会话中捕获控制台输出?

】如何从远程NSight会话中捕获控制台输出?【英文标题】:HowdoIcaptureconsoleoutputfromaremoteNSightsession?【发布时间】:2013-06-1106:35:38【问题描述】:我有一组CUDA应用程序,它们都通过cout写入控制台。我有一台带有VS和NSight插件的主... 查看详情

如何让用户选中一个框以授予权限,而不是用户在 React-Native 中的警报上单击确定?

】如何让用户选中一个框以授予权限,而不是用户在React-Native中的警报上单击确定?【英文标题】:HowdoIhaveausercheckaboxtograntpermissionsinsteadoftheuserclickingokayonanAlertinReact-Native?【发布时间】:2019-03-1108:47:02【问题描述】:iOS版本的... 查看详情

在 Nsight Eclipse 7.5 中进行分析以使用 NVTX 时,正确的 CUDA 项目配置是啥?

】在NsightEclipse7.5中进行分析以使用NVTX时,正确的CUDA项目配置是啥?【英文标题】:WhatisthecorrectCUDAprojectconfigurationwhenprofilinginNsightEclipse7.5inordertouseNVTX?在NsightEclipse7.5中进行分析以使用NVTX时,正确的CUDA项目配置是什么?【发布... 查看详情

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

】在VS2010中使用NvidiaNSight进行CUDA性能分析-时间线上的片段【英文标题】:CUDAPerfomanceProfilingwithNvidiaNSightinVS2010-segmentonthetimeline【发布时间】:2013-04-2323:17:45【问题描述】:我想知道,假设我只调用了一个内核,在应用程序跟踪... 查看详情

如何使 Nsight profiling 的内存统计部分有意义?

】如何使Nsightprofiling的内存统计部分有意义?【英文标题】:howtomakeameaningofmemorystatisticssectionofNsightprofiling?【发布时间】:2015-11-1902:29:47【问题描述】:我正在使用Geforce820m和GPU时钟频率:1124MHz(1.12GHz)内存时钟频率:900Mhz内存总... 查看详情

CUDA:Nsight VS2010 profile __device__ 函数

...ion【发布时间】:2013-02-1114:54:25【问题描述】:我想知道如何在VisualStudio2010上使用Nsight2.2分析__global__函数内的__device__函数。我需要知道哪个函数消耗大量资源和时间。我在CC2.0上有CUDA5.0。【问 查看详情

Swift如何显示警报以请求照片库的权限?

】Swift如何显示警报以请求照片库的权限?【英文标题】:Swifthowtoshowalerttorequestpermissionforphotolibrary?【发布时间】:2018-05-0118:46:33【问题描述】:我在一个弹出窗口上点击了“取消”,该弹出窗口询问我制作的应用程序中的照片... 查看详情