问题标签 [nvprof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1188 浏览

cuda - 如何使用 cudaStream_t 访问在 nvprof 中看到的数字流 ID?

在 nvprof 中,我可以看到我正在使用的每个 cuda 执行流的流 ID(0、13、15 等)

给定一个流变量,我希望能够打印出流 ID。目前我找不到任何 API 来执行此操作,并且将其cudaStream_t转换为 int 或 uint 不会产生合理的 ID。sizeof()cudaStream_t是8个字节。

0 投票
1 回答
2737 浏览

cuda - Nvidia 用于 FLOPS 的 nvprof 输出

我看到 nvprof 可以分析内核中的 flop 数量(使用如下参数)。此外,当我浏览文档时(这里http://docs.nvidia.com/cuda ...它说 flop_count_sp 是“非谓词线程执行的单精度浮点运算数(加、乘、乘-累加和特殊)。每个乘法累加操作对计数贡献 2。

但是,当我运行时,flop_count_sp(应该是flop_count_sp_add+ flop_count_sp_mul+ flop_count_sp_special+ 2 * flop_count_sp_fma)的结果我发现它的总和中不包括flop_count_sp_special.

你能建议我应该使用什么吗?我应该将此值添加到总和中flop_count_sp还是应该考虑公式不包含 的值flop_count_sp_special

另外你能告诉我这些特殊操作是什么吗?

我正在使用以下命令行:

我的 CUDA 内核的名称在哪里myKernel,它有一些由 args 给出的输入参数。

例如,我的 nvprof 输出的一部分如下所示:

0 投票
1 回答
217 浏览

cuda - NVIDIA Visual Profiler 上的过滤功能

我无法在 NVIDIA Visual Profiler 的时间线上隔离我的代码的关键部分。一些巨大的酒吧,如图像中的那个。 NVIDIA Visual Profiler 时间线,其中包含与单个函数相关的巨大条形图

我对优化这个函数不感兴趣,它在时间线上的存在会破坏程序中的几个统计测量。因此,我想告诉分析器忽略它。是否可以?

0 投票
1 回答
1090 浏览

cuda - Nvidia 视觉分析器错误:无法创建分析文件

我是 nvprof 的新用户,当我尝试使用 nvprof 分析我的代码时出现错误。我在我的代码中添加了一些 OpenACC 指令。我使用的cuda工具包是Cuda8.0。我的代码是用 fortran90+OpenMPI 编写的。我使用 16 个内核进行并行计算。这是我用来提交代码的脚本:

该作业在运行几秒钟后终止,我收到以下错误消息:

生成了一个 nvprof.out 文件,但是当我使用命令“nvvp nvprof.out”检查它时没有显示任何内容。你以前遇到过这种情况吗?任何建议将不胜感激!

0 投票
1 回答
107 浏览

cuda - How do I know the presence of nvprof inside CUDA program?

I have a small CUDA program that I want to profile with nvprof. The problem is that I want to write the program in such a way that

  • When I run nvprof my_prog, it will invoke cudaProfilerStart and cudaProfilerStop.
  • When I run my_prog, it will not invoke any of the above APIs, and therefore can get rid of profiling overhead.

The problem hence becomes how to make my code aware of the presence of nvprof when it runs, without additional command line argument.

0 投票
1 回答
294 浏览

cuda - 如何在无头节点上分析 CUDA 代码?

我正在开发一个我想要分析的 CUDA 应用程序。到目前为止,我使用的只是命令行分析器,它只nvprof显示汇总的统计信息。

我考虑过使用 GUI 分析器 NVVP。问题是我运行应用程序的远程 Linux 节点没有任何 GUI(甚至是 X.org)。此外,即使我设法在远程节点上获得了一些 X11 堆栈,在整个分析过程中保持我自己的笔记本电脑处于活动状态也是非常乏味的。

我尝试通过以下方式收集所有需要的信息:

然后我将输出文件复制到我的笔记本电脑上并在 NVVP 中查看。但是,这有三个问题。

首先,当我将输出文件加载到 NVVP 时,我没有得到任何文件传输信息。它根本没有显示在 NVVP 窗口中。

其次,调用图完全扭曲。内核启动之间的间隔至少比内核持续时间大 100 倍,这使得任何依赖关系和流分析都是不可能的。

最后,我的应用程序使用了大量的 GPU 内存。在分析期间,设备内存不足,而在独立运行期间并非如此。

我应该如何在无头节点上正确分析我的 CUDA 应用程序?

0 投票
1 回答
1746 浏览

cuda - 是否可以通过 nvprof (或其他方法)看到内核执行发生在 Tensor Cores 上还是不发生?

我正在尝试确定 Titan V / V100 上深度学习模型的 GPU 执行性能瓶颈。我了解必须满足某些要求才能在基于https://devblogs.nvidia.com/parallelforall/programming-tensor-cores-cuda-9/的张量核心上执行底层内核执行

“nvprof”提供了一种将所有内核执行转储到 GPU 上的简单方法,但它似乎并没有说明是否实际使用了 Tensor Core。这是捕获此类信息的一种方式吗?

0 投票
1 回答
1398 浏览

cuda - GPU 中的时间戳

我希望收集在 GPU 上的设备级别发生的事件的痕迹。

CPU的背景/类比:

在 CPU 上,当进程 A 运行时,它可能会被另一个用户级进程 B、系统/内核进程、各种中断(如硬件中断、网络中断、管理程序相关的中断等)中断。要衡量这些,理想情况下,我必须制作一个内核补丁,该补丁将捕获调度程序和中断托盘中所有进程和中断的开始和结束时间。使这些内核数据结构对用户级可见,然后从用户级程序中重复读取它们。

我想为 GPU 做类似的事情。如何捕获这些中断和后台进程的时间戳?在我看到的文献中,它nvidia-smi可用于收集时间戳,但我非常不清楚如何实际检测 GPU 以获得我需要的东西。

谁能指出参考资料或告诉我如何使用GPU来获取时间戳?或者具体来说,使用nvprof,cuda-memcheck来达到同样的目的?

0 投票
1 回答
114 浏览

performance - 使用几乎相同的 CUDA 内核的低处理器效率

我创建了三个合成 CUDA 内核,它们几乎都只做算术运算。所有三个内核都是相同的,只是它们中的每一个都执行不同数量的操作。内核 #1 执行 8 次操作,内核 #2 执行 16 次操作,内核 #3 执行 32 次。以下是所有三个的 CUDA 内核的实现。

内核#1:

内核#2:

内核#3:

线程总数已设置为 16384,块大小为 256。我计算了每个内核的总 GFlops,分别等于 20.44、56.53 和 110.12 GFlops。我试图想出一个解释,但什么都没有出现在我的脑海里。所以我尝试使用 nvprof 并监控所有指标。所有指标几乎相等,以下是一些对我来说很重要的指标(我还包括内核 1 到 3 的结果):

很明显,它们都具有相同的 dram_write_throughput,因为它们都向 DRAM 写入相同数量的数据,并且线程总数相同。我不明白的是 sm_efficiency。我的内核都在做算术(相同),他们的 sm_efficiency 怎么不一样。另外,为什么在同一个内核中有更多的算术会提高效率?我的理解是,在 SM 上寻找经线定位时,它们都应该有相同的问题。

任何人都可以使用以下指标帮助我了解 GFlops 的区别吗?

0 投票
1 回答
2460 浏览

cuda - 如何为 Nvidia Visual Profiler 指定 nvprof“设备”选项?

CUDA Toolkit 9.0、Windows 10、GTX 1060 和 NVS 315、385.54 驱动程序版本。

Nvidia Visual Profiler 总是无法进行分析,返回以下两条警告消息:

“警告:此版本的 nvprof 不支持底层设备,GPU 分析已跳过”

“警告:未分析任何 CUDA 应用程序,正在退出”

请注意,我的机器安装了两个 GPU。物理移除 NVS 315 可解决问题;可视化探查器工作。通过设备管理器禁用 NVS 315 也可以。我只想分析 GTX 1060,但我想在安装 NVS 315 的情况下这样做,而不是禁用。

使用 nvprof 并指定“--devices”选项有效:

然而

从 nvprof 导出结果,然后在 Visual Profiler 中打开工作:

但我很懒,不想在每次配置文件时都重复一百次。

因此,NVS 315 似乎有些不兼容的地方。此外,为 Visual Profiler (nvvp) 指定类似“--devices 0”的内容似乎是一种解决方案。要是我知道怎么做就好了。