问题标签 [nvvp]
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.
xml - 如何从 nvprof 或 NVidia Visual Profiler 的输出中获取计时值?
我正在使用 nvprof 来分析某些东西(包括 CPU 工作和 GPU 工作,即我使用 nvprof 标记等),并且我得到了 nvprof 生成的二进制文件。我可以将这些导入到 NVVP(NVidia Visual Profiler;Linux 版本)中,并且稍加努力也可以将其保存到 XML 中。
但是... XML 不包含有关我的各种 CPU 何时执行的计时数据。它提到了他们的存在,但没有更多。此外,XML 的末尾有这个二进制 blob,可能是 Base64 编码或其他东西,位于 PDM 标记内。我不清楚那里是否有任何帮助。
cuda - 配置文件调试或发布 cuda 代码?
我一直在分析应用程序nvprof and nvvp (5.5)
以优化它。但是,当我分析调试()和发布版本的代码时,对于某些指标/事件(如inst_replay_overhead
、ipc
或等),我会得到完全不同的结果。branch_efficiency
-G
所以我的问题是:我应该配置哪个版本?发布版还是调试版?或者选择取决于我在寻找什么?
我找到了CUDA - Visual Profiler and Control Flow Divergence,其中声明需要调试(-G
)版本才能正确测量发散分支指标,但我不确定其他指标。
cuda - How to view CUDA library function calls in profiler?
I am using the cuFFT library. How do I modify my code to see the function calls from this library (or any other CUDA library) in the NVIDIA Visual Profiler NVVP? I am using Windows and Visual Studio 2013.
Below is my code. I convert my image and filter to the Fourier domain, then perform point-wise complex matrix multiplication in a custom CUDA kernel I wrote, and then simply perform the inverse DFT on the filtered images spectrum. The results are accurate, but I am not able to figure out how to view the cuFFT functions in the profiler.
cuda - 我可以在 C 源代码级别分析 OpenACC 内核吗?
我正在尝试使用带有 PGI 15.7 编译器的 openacc 来加速我的代码。
我想在 C 源代码级别分析我的代码。我正在使用 CUDA 7.0 中的“nvvp”分析器当我运行 nvvp 时,我可以使用“分析抽头”,并且可以了解哪个延迟是我的代码变慢的原因。(数据依赖,条件分支和带宽......等)
但是,我无法获得基于行的分析,而只能获得“内核”级别的分析。(例如 main_300_gpu 内核使用了 10 秒)。所以我很难知道我必须在哪里修复代码。
有没有办法在源代码级别分析我的代码?
我在用着
PGI 15.7(使用 pgcc)
CUDA 7.0
英伟达 GTX 960
Ubuntu 14.04 LTS x86_64
cuda - 如何观察可执行文件的一小部分的 CUDA 事件和指标(例如,仅在内核执行期间)?
我熟悉使用 nvprof 访问基准的事件和指标,例如,
这
命令给出开始时间、内核结束时间、电源、温度的时间戳,并将信息保存在 nvvp 文件中,以便我们可以在可视化分析器中查看它。这使我们能够看到代码的任何部分发生了什么,特别是在特定内核运行时。我的问题是——
有没有办法隔离仅在基准运行的一部分中计数的事件,例如在内核执行期间?在上面的命令中,
只是给出整个可执行文件的指令。谢谢!
profiling - 如何关联事件、指标和源级结果以使用 nvvp 分析 pyCUDA 程序
当我尝试使用 nvvp 分析我的 pyCUDA 应用程序时,它在大多数情况下都有效。我可以点击“Examine GPU Usage”并查看我的代码的一些分析结果/建议,例如“Low Compute / Memcpy Efficiency”。
但是,每次 nvvp 运行程序执行分析时,我都会看到以下警告。
一些收集的事件、指标或源级结果无法与会话时间线相关联。这可能会阻止将事件、度量和源级别的结果分配给某些内核。
如果我做一些事情来解决这个问题,我似乎可以获得更详细的分析。有谁知道如何将“收集的事件、指标或源级结果与会话时间线”相关联?
c++ - CUDA 流未并行运行
鉴于此代码:
查看 的输出nvvp
,我看到几乎完美的串行执行,即使第一个流是一个冗长的过程,其他流应该能够与之重叠。
请注意,我的内核使用了 30 个寄存器,并且都报告了大约 0.87 的“Achieved Occupancy”。对于最小的图像,网格大小为 [10,15,1],块大小为 [32, 16,1]。
cuda - 将 CUDA nvprof 输出导出到 Visual Profiler
我想从我的 GPU 应用程序中提取数据以检查其限制。我必须使用nvprof因为应用程序在远程服务器上运行,所以我应该创建一个文件以在Visual Profiler中本地导入。我尝试使用nvprof -o file_name <app> <params>
和使用创建文件,nvprof --analysis-metrics --output-profile file_name <app> <params>
但是当我在 Visual Profiler 上导入这些文件时,在分析部分中的一些字段为空:“全局内存加载数据不足”、“全局内存存储数据不足”、“内核不足” SM数据”... 我如何生成一个文件(或更多文件)以获得分析部分的所有信息?我用带有标志的nvcc编译 cuda 代码-lineinfo -arch compute_20 -code sm_20 --ptxas-options=-v
。以下是一些空字段的示例:
cuda - nvvp(视觉)和nvprof(命令行)的输出有什么区别吗?
为了测量 CUDA 程序的指标/事件,我尝试使用如下命令行:
我还在 Visual profiler 上测量了相同的指标nvvp
。我注意到我得到的值没有区别。
当我选择像achieved_occupancy
. 但这会随着每次执行而变化,这可能就是为什么我每次运行它都会得到不同结果的原因,无论我使用的是nvvp
还是nvprof
.
问题:
我的印象是nvvp
和nvprof
完全一样,那nvvp
只是一个建立在上面的GUI,nvprof
以便于使用。但是我得到了这个建议:
始终使用视觉分析器。永远不要使用命令行。
另外,这个问题说:
我不想使用命令行分析器,因为我需要全局加载/存储效率、回放和 DRAM 利用率,这些在可视分析器中更加明显。
除了 '动态' 指标achieved_occupancy
,我从未注意到结果有任何差异。那么,这个建议有效吗?工作方式是否存在某种缺陷nvprof
?我想知道在命令行表单上使用可视化分析器的优势(如果有的话)。
更具体地说,是否存在nvprof
给出错误结果的指标?
笔记: