问题标签 [nsight]

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 回答
1236 浏览

cuda - Cuda 和 Nsight - 发布

我已经成功安装了 Cuda SDK 并使用 HelloWorld 测试了编译器然后我打开了 Nsight 并尝试使用相同的代码。我得到了这个答案“启动失败。找不到二进制文件。” 这是 Nsight 中涉及的编译器的问题吗?谢谢

0 投票
1 回答
647 浏览

eclipse - 将 Nsight Eclipse 项目转换为 Visual Studio

我在 Linux 下的 Nsight Eclipse 中有一个 CUDA 项目,但是我必须测试我的代码的其中一台机器使用带有 Visual Studio 2012 Professional 的 Windows 8。如何将我的项目从 Eclipse 版本转换为 Visual Studio 版本?或者如果不可能,至少我如何在 Linux 下从 Nsight Eclipse 编译到 Windows 应用程序?

0 投票
3 回答
1707 浏览

debugging - 在 Linux 服务器上运行的 CUDA 程序的远程调试和分析

这是我的场景。我在 Windows 机器上编写我的 CUDA 应用程序。我使用 putty 在远程 linux (Debian) 服务器(没有图形输出)上编译和运行这个应用程序。

我想问一下调试和分析我的应用程序的最佳方法是什么。我读了一些关于 Nvidia 产品 Parallel Nsight 和 Parallel Nsight Monitor 的内容。这是(唯一的)方式吗?

0 投票
1 回答
1392 浏览

debugging - NSight 在调试时跳过断点

我有一个 cuda 应用程序,我正在尝试使用并行 Nsight 调试器进行调试。我的内核函数中有一个断点。但是当我尝试调试代码时,调试器不会在断点处停止并立即打印出结果。我已经搜索过这个,我也得到了一个这样的帖子. 但是我在我的项目的属性页面中检查了“生成 GPU 调试信息”,它已经变成了“是(-G0)”。我还在 Nvidia 示例程序之一(如 matrixMulCUDA)中设置了断点,我可以轻松调试他们的程序并能够查看详细信息。所以我不知道我应该做什么或需要更改哪些其他设置才能调试我的程序。我想提供更多信息: 1. 我使用的是 Microsoft Visual Studio 2010 2. 我的 GPU 卡是 NVidia 560ti。3 我正在使用 CUDA 5.0 和并行 NSight Visual Studio 2.2 版。

以下是我调用内核的主机代码函数的一些屏幕截图,以及我设置断点的部分内核函数。任何帮助将不胜感激。

0 投票
1 回答
408 浏览

visual-studio-2010 - VS2010 Nsight 3.0,多GPU卡但只能看到一台设备。

症状:

我首先要确保这个盒子里实际上有两张 nvidia 卡,所以

在 VS2010 -> NSight -> Windows -> SystemInfo -> 显示设备

我可以看到似乎有两个设备。

英伟达 GeForce GTX 560 Ti

英伟达 GeForce GTX 560 Ti

名称 \.\DISPLAY2
ID PCI\VEN_10DE&DEV_1200&SUBSYS_35151458&REV_A1
状态标志 无

在 VS2010 -> NSight -> Windows -> SystemInfo -> GPU 设备或 CUDA 设备

  1. 我只能看到一列值(不包括“属性”列)

  2. 我只能在 NVIDIA 控制面板 -> 3D 设置 -> 设置 PhysX 配置下看到一张卡

  3. 在代码中,当我这样做时

    整数开发计数;cudaGetDeviceCount(&devCount);

devCount 将只是 '1'

结果,我无法根据需要设置为使用特定的 GPU。

问题:

我想知道

  1. 如果这是因为显示器使用了第一张 GeForce 卡,因此所有 CUDA 计算都在第二张卡上进行,并且只知道第二张卡?

  2. 即使假设是正确的,有没有办法在 Windows 上规避这个问题,以便我仍然可以在两个 GPU 设备上进行计算?

0 投票
1 回答
139 浏览

cuda - 带有 NSight 3.0 性能分析器/分析器的 VS2010 的良好实践参考

我只是想知道是否有人可以为 VS2010 上的 NSight 3.0 的一些动手教程提供一些好的参考(嗯,或者一些最接近的版本)

用户文档确实提供了丰富的信息,但更具指导性的东西会更好。

0 投票
1 回答
1119 浏览

visual-studio-2010 - 在 VS2010 中使用 Nvidia NSight 进行 CUDA 性能分析 - .nvreport 报告文件

我做了一个应用程序

在此报告文件中:

1.

当我在下拉列表中选择“CUDA -> CUDA 摘要”时

在表中的Runtime API 调用项下

时间百分比- 80.66

发射

%设备时间- 15.46

所有其他时间百分比几乎为 0%

所以我的问题是,剩下的 19.34% 的时间和 84.54% 的设备时间在哪里?也就是说,如果它们表示完全不同的“总时间”值的百分比?

2.

我使用推力向量来回复制我的数据。在本报告的“内存副本”部分,我运行的备忘录副本的所有 % Time 值显然可以忽略不计。

但是你猜怎么着,当我点击运行时 API 调用的“摘要”链接(它的 % Time 值高达 80.66)时,我立即看到罪魁祸首 - 'cudaMemcpy' 和它的 'Capture Time %' 值一样高在此“运行时 API 调用摘要”页面中为 73.75 。

所以我的问题是

  • 这是否意味着我的瓶颈仍然是那些对推力::复制()的调用,甚至报告的“备忘录副本”部分也没有显示它?
  • 我怎样才能真正找到对我来说最昂贵的确切函数调用?
  • 时间线功能如何帮助解决这些问题?
0 投票
1 回答
394 浏览

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

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

处理 -> CUDA -> 计算

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

0 投票
1 回答
474 浏览

c++ - CUDA:为什么一个特定的备忘录复制操作总是比其他类似的成本高 10 倍

我相信下面的代码执行一个典型的

  • 复制到设备
  • 调用内核
  • 复制回主机

工作流程。

  1. 我发现非常奇怪的是,当我使用 NSight Profiler 的 Trace Application 选项时,在报告中,打开“堆栈跟踪”时,我发现最昂贵的操作是粗体线,而只是那条线,而其他 memoCopy 操作的成本几乎仅为该 memoCopy 操作的 10% 或更少。

    这是因为它是调用内核之后的第一行,因此探查器以某种方式将某些同步的成本包含在此特定 memoCopy 操作的成本中?

  2. 对于像我正在处理的问题,需要非常频繁的同步并将结果“返回”给主机,有人可以就最佳实践提供一些一般性建议吗?我特别考虑了两个选项,我不确定最终是否会有所帮助

    • 使用“零拷贝”内存,(示例 11.2 中的 CUDA)
    • 使用原子操作创建我的同步方式

{

}

0 投票
3 回答
4645 浏览

cuda - CUDA 计算能力 1.0 比 3.5 快

我有一个在 680gtx 上运行的 cuda 程序,在测试不同的编译器选项时,我注意到:

  • 为计算能力 1.0 和 sm 1.0 编译我的代码给出了 47ms 的运行时间

  • 为计算能力 3.5(也是 2.0)和 sm 3.0 编译我的代码,运行时间为 60 毫秒


出现这种结果的原因可能是什么?

我在 linux 和 CUDA 5.0 上编译 nsight 编译器,我的内核主要是内存绑定的。

谢谢。


命令:

抄送 1.0

抄送 3.0


有关编译我的内核的更多信息:

抄送 1.0

抄送 3.0