问题标签 [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.
cuda - 内核启动和内核执行之间的时间
我正在尝试使用 VS 2010 的 Parallel Nsight 2.1 版本来优化我的 CUDA 程序。
我的程序在带有 GTX 480 板的 Windows 7(32 位)机器上运行。我已经安装了 CUDA 4.1 32 位工具包和 301.32 驱动程序。
程序中的一个周期包括将主机数据复制到设备、执行内核以及将结果从设备复制到主机。
正如您在下面的分析器结果图片中看到的那样,内核在四个不同的流中运行。每个流中的内核依赖于“流 2”中复制到设备的数据。这就是为什么 asyncMemcpy 在不同流中启动内核之前与 CPU 同步的原因。
图片中让我恼火的是第一次内核启动结束(10.5778679285)和内核执行开始(10.5781500)之间的巨大差距。启动内核大约需要 300 我们,这在不到 1 毫秒的处理周期中是一个巨大的开销。
此外,内核执行和将结果的数据复制回主机没有重叠,这进一步增加了开销。
这种行为有什么明显的原因吗?
cuda - Nsight 配置文件实验未运行
我已经为 VS2010 安装了 nsight 并且调试效果很好(该卡是 Quadro FX 5800,根据http://developer.nvidia.com/content/nsight-visual-studio-edition-supported-gpus-full-列表)。但是,当我尝试运行分析实验时,唯一显示的实验结果是占用率,控制台进度显示如下
即使我已经要求进行所有的实验。有谁知道为什么会这样?
debugging - Nvidia Nsight 2.2 OpenGL 着色器调试器 - 不工作?
我在两台计算机上配置了 NVidia 的 Parallel Nsight 2.2 系统。目标有一个 Geforce 450 gts,驱动程序版本为 301.42,主机有一个 Quadro 1000M,驱动程序版本相同。加载最简单的 OpenGL 3.0 程序(使用着色器显示彩色三角形)运行良好,但我似乎无法让 Nsight 着色器调试器工作。
一切似乎都正常,我可以打开 NSight->Windows->Shaders List 窗口,双击一个着色器,打开源代码并选择一行并设置一个断点。出现一个大红点表示已设置断点,但断点永远不会命中,所以我被卡住了。
有没有人让 OpenGL 着色器调试器与 Parallel Nsight 2.2 一起工作?
顺便说一句,NSight->New Analysis Activity 效果很好。我可以创建所有 openGL 调用的跟踪并毫无问题地查看它。
c++ - Nsight Eclipse 可以分析 C++ 代码吗?
我们有 C++ 代码,我们想在向其添加 CUDA 代码之前使用 Nividia Nsight Eclipse(Linux 版本)对其进行分析。想法是先对 C++ 进行剖析,找到热点,将其转换为 CUDA,再次剖析,然后迭代此过程以逐步加快代码速度。但是,当我们仅对 C++ 进行分析时,分析器似乎需要一些现有的 CUDA 代码才能生成时间线和分析输出。有人遇到过这种情况么?
c++ - Nsight 或其他适用于 Visual Studio 2012 (GeForce) 的 Direct3D 调试器/性能分析器?
我正在为 Visual Studio 2012 寻找任何类型的 Direct3D 10/11 调试器/性能分析器。
我发现了一个名为 NVidia PerfHUD 的非常好的应用程序,但我注意到它已经贬值了。
新的是 NVidia Nsight。不幸的是,它是为 Visual Studio 2008/2010 设计的。
有没有将 NVidia Nsight 连接到 Visual Studio 2012 的选项?
如果没有,是否有任何其他该类型的程序(易于使用的监视器可以让我检查 Direct3D C++ 应用程序的性能)?
eclipse - nSight eclipse版远程交叉编译和执行
我下载了 nVidia CUDA 5.0,因为我想尝试 nSight Eclipse 版本因为我是 Mac 用户,这对我来说很有意义。它工作得很好,但我真正想做的是在我的外部机器(家里和亚马逊)上远程编译和执行(和调试)代码,这些机器基本上是 Linux 机器。
我怎样才能做到这一点?
debugging - CUDA 在 Nsight 调试中无法查看共享内存值
我一直在努力解决一个我似乎无法找到解决方案的问题。问题是当我尝试在 Visual Studio 2008 下使用 Nvidia Nsight 调试我的 CUDA 代码时,我在使用共享内存时得到了奇怪的结果。
我的代码是:
当我到达断点 1 并检查 Visual Studio Watch 窗口中的共享内存时,只有数组的前 8 个值发生变化,其他值保持为空。我希望所有前 64 人都这样做。
我认为这可能与所有未同时执行的经线有关。所以我尝试同步它们。我在里面添加了这段代码integrate()
但问题仍然存在。此外, tmp 中的其余值0
与监视窗口窗体 VS 所指示的不同。
我必须提到,它需要很多步骤才能跨越__syncthreads()
,所以当我到达它时,我只是跳转到断点 2。到底发生了什么!?
编辑有关系统/启动配置的信息
系统
- 名称 Intel(R) Core(TM)2 Duo CPU E7300 @ 2.66GHz
- 架构 x86
- 频率 2.666 MHz
- 核心数 2
- 页面大小 4.096
- 总物理内存 3.582,00 MB
- 可用物理内存 1.983,00 MB
- 版本名称 Windows 7 Ultimate
- 版本号 6.1.7600
设备GeForce 9500 GT
- 驱动程序版本 301.42
- 驱动器型号 WDDM
- CUDA 设备索引 0
- GPU 系列 G96
- 计算能力 1.1
- SM 数量 4
- 帧缓冲区物理大小 (MB) 512
- 帧缓冲带宽 (GB/s) 16
- 帧缓冲总线宽度(位) 128
- 帧缓冲区位置专用
- 图形时钟 (Mhz) 812
- 内存时钟 (Mhz) 500
- 处理器时钟 (Mhz) 1625
- 内存类型 DDR2
IDE
- 微软 Visual Studio 团队系统 2008
- NVIDIA Nsight Visual Studio 版本,版本 2.2 内部版本号 2.2.0.12255
编译器命令
1> "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -G -gencode=arch=compute_10,code=\"sm_10,compute_10\" --machine 32 -ccbin "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin" -D_NEXUS_DEBUG -g -D_DEBUG -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd "-I"inc" -I"C: \Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -maxrregcount=0 --compile -o "Debug/process_f2f.cu.obj" process_f2f.cu
启动配置。共享内存大小似乎并不重要。我试过几个版本。我合作最多的一个是:
- 共享内存 2048 字节
- 网格/块大小:{101、101、1}、{16、16、1}
cuda - Cuda 共享内存在 Nsight 中显示为寄存器
我声明了共享内存,并尝试使用 Visual Studio 2010 的 Nsight 2.2 对其进行跟踪。我将 CUDA 4.2 与 quadro 5000 一起使用。
在我的 kernel.cu 中:
在我调用内核的函数中:
当我查看 Nsight 上的 analisys 活动然后“CUDA Launches”时,它告诉我:
- 每个块分配的寄存器:10240
- 每个块分配的共享内存:0
- 块限制原因:寄存器
我是否正确分配了共享内存?我不明白如何分配寄存器。
编辑:
它还告诉我:
- 每个线程注册:32
- 每个块的动态共享内存:0
- 每个块的静态共享内存:0
visual-studio-2010 - 两个连续的“cudaMallocPitch”使代码失败
我写了一个简单的CUDA代码如下:
我注释掉了第二个分配块,代码运行良好。它将数据从主机数组“hostArrayR”复制到设备数组“deviceArray2DInput”并复制回来。但是,如果两个分配块都存在,则复制回的“hostArrayR”为空(没有从设备复制回数据)。
我确信数据在第 (#1) 行的“hostArrayR”中,但第 (#2) 行没有数据。我清理了前 10000 个元素(远小于数组的大小)以验证数据没有返回。
我在 Visual Studio 2010 上使用 Nvidia Nsight 2.2。数组大小为 1024x768,我使用的是浮动 32 位数据。我的显卡是 GTX570。似乎没有内存分配错误(或者代码会在复制之前返回)。
我没有尝试“cudaMalloc()”,因为我更喜欢使用“cudaMallocPitch()”进行内存对齐。
graphics - 在 Nsight 2.2 中使用图形调试器时应用程序崩溃
嗨,我使用的是NVidia Nsight 2.2,有GTS 450卡和最新的驱动程序。Windows Vista 64 位。启动图形调试器时,应用程序在第一次绘制调用时崩溃。调用堆栈如下所示:
否则它本身运行良好,只有当我通过 Nsight 图形调试器启动时才会崩溃。我怀疑这与我使用DX11 dynamic shader linkage
. 由于我的其他不使用动态链接的应用程序运行良好。有人以前经历过这种情况,或者有关于 Nsight 的这个问题的任何信息吗?