问题标签 [cuda-gdb]
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 - CUDA-GDB:设置调试器环境
我在 Ubuntu Linux 上遵循CUDA-GDB 指南(第 10 页,入门)并得到了这个:
好吧,我该如何解决这个问题?我有当前的工具包。
cuda - CUDA-GDB 在内核中崩溃
我一直在尝试调试我的代码,因为我知道内核中出了问题,并且我一直在试图找出具体是什么。如果我尝试进入内核,它似乎完全越过了内核功能,最终会导致退出时出错:
如果我试图闯入内核,我的整个计算机都会崩溃,我必须重新启动它。
我认为我调用内核的方式一定有问题,但我不知道是什么。
代码比较长,我只摘录一段:
如果有人有任何想法,请回复!提前致谢!
cuda - cuda-gdb 从四个可用的支持 CUDA 的设备中只看到一个功能最差的设备
有四种支持 CUDA 的设备可用:
cuda-dbg
只看到其中一个:
我已经检查了代码构建-gencode arch=compute_20,code=sm_20
在所述机器上编译时没有错误,并且在编译sm_20
后printf
在 CUDA 内核中使用时可以正常工作。
我怎样才能cuda-gdb
看到所有设备(也许除了一个用于图形的设备......尽管在这种情况下我通过 SSH 远程登录),或者至少一个 Tesla / sm_20 设备?
当通过将环境变量设置为仅包含“0,1”(即仅使特斯拉可见)来遵循Michael Foukarakis 响应中的建议时,运行后出现以下错误:CUDA_VISIBLE_DEVICES
info cuda devices
如何检查 X11 (X.Org) 使用了哪些设备,以及如何使 X Window System 使用 GeForce 而不是 Tesla?
debugging - CUFFT 和 CUDA 运行时 API (cudart) 的调试符号
我在哪里可以找到*.debug
包含来自 CUDA SDK 的 CUDA 库的调试信息的文件,即 CUFFT 和 CUDA Runtime API (cudart),以及如何将它们提供给调试器和/或分析器?
如果没有此信息,使用 CUDA 库的调试应用程序将非常困难,尤其是当错误出现在 CUDA 代码中时。
linux - Linux下的可视化内存调试应用?
是否存在类似于Visual Profiler for CUDA的调试应用程序?它根据执行时间在功能级别显示有关应用程序的信息。是否有针对常规 C/C++ 应用程序的功能,以便我可以查看哪些函数占用的时间和内存最多?
我正在尝试调试一个读取大量数据文件并使用自定义类来读取文件并在内部将其表示为向量向量的应用程序。我有另一个类,它表示对数据文件中的数据执行的操作。当我在循环中读取越来越多的文件并对其进行操作时,内存使用量只会增加,直到操作系统杀死应用程序。我一直很擅长清理使用动态内存。一些可视化的东西可以帮助我浏览所有文件和功能,看看哪些使用时间和内存最多,这将是非常有益的!
我可以在我的应用程序中使用 libproc 来确认循环的每次迭代,内存使用量从大约 500 兆兆增加到高达 19 GB。这不应该是因为数据的范围在循环内,所以在循环的下一次迭代中,使用数据的 C++ 对象应该已经被清除并返回给操作系统,但这并没有发生。
我希望这不会太模糊,谢谢!
cuda - cuda-gdb 在遇到内核调用时以“[1] 停止”退出
我对 CUDA 很陌生,在这里我的裤子座位上飞了一下......
我正在尝试在我没有管理员权限的远程计算机上调试我的 CUDA 程序。我用 cuda-gdb 编译我的程序,nvcc -g -G
然后尝试调试它。但是,只要 gdb 调用内核(甚至不必输入它,并且它不会发生在主机代码中),我就会得到:
cuda-gdb 然后将我转储回我的终端。如果我再次尝试运行 cuda-gdb,我会得到
恢复的唯一方法是kill -9
cuda-gdb 和cuda_clustered_
(我假设后者是我的二进制文件的一部分)。
这台机器有两个 GPU,正在运行 CUDA 4.1(我相信 - 安装了很多,但这是我设置的那个)PATH
并且LD_LIBRARY_PATH
编译 + 运行 deviceQuery 和 bandwidthTest 很好。
如果需要,我可以提供更多信息。我搜索了所有可以在网上找到的地方,但没有找到任何帮助。
debugging - CUDA 调试,或者如何在不禁用优化的情况下在 cuda-gdb 中获取源代码行?
我有一个相当大且复杂的 CUDA 代码,对于大量块/线程来说,它非常可靠地挂起。我试图弄清楚代码挂在哪里。
当我在 中运行代码时cuda-gdb
,我可以看到哪些线程/块挂起,但我看不到“虚拟 PC”之外的位置。
如果我用“-G”编译代码来获取调试信息,无论我运行多长时间,它都会运行得慢很多并且拒绝挂起。
有没有办法将“虚拟PC”映射到源代码中的一行代码,甚至是近似的?或者有没有办法在不关闭所有优化的情况下获取调试信息?
我试过使用“-G3”,但无济于事。这只是给了我“”类型的警告nvcc warning : Setting optimization level to 0 as optimized debugging is not supported
。我正在使用 CUDA 编译工具 4.1 版。
ubuntu-12.04 - CUDA-GDB:没有 CUDA 设备
我正在尝试调试一个运行良好并且在编译时没有给出错误或警告的源代码。问题是当我用 cuda-gdb 一步一步运行它时,根本没有启动任何 CUDA 内核(我从调试器得到的输出与 Nvidia cuda-gdb 指南中显示的完全不同),但是程序仍然可以正常工作,没有任何错误。在任何时候我都没有得到 CUDA 内核、设备或线程。显然,焦点也没有放在任何东西上。我正在使用 CUDA-GDB 的 4.2 版本。
这是我应该启动内核时从调试器得到的:
我的 CUDA 设备是 GeForce 8400M GS,我对 deviceQuery 检查没有任何问题。我不知道如何解决这个问题,因为这些天 Nvidia 论坛处于离线状态!
提前非常感谢。
eclipse - nsight eclipse for mac lion 调试错误
我正在使用 nsight eclipse edition for mac 来调试我的 cuda 代码。我能够从终端运行 cuda-gdb 一切正常,但无法使用 Nsight 中的调试功能。每当我开始调试时,都会弹出一个错误窗口,提示“最终启动序列中的错误连接已关闭”。我的操作系统是 Mac Lion (10.7.4)。
我知道 Cuda 5.0 中最重要的是使用 eclipse 进行交互式调试,但遗憾的是,除非我切换到 Windows 或 Linux,否则我将无法使用它。如果有人看到此问题或知道此问题的解决方法,请告诉我,我们将非常感谢您的帮助。
谢谢!
cuda-gdb - 未对齐的共享或本地地址
我正在使用 cuda-memcheck 来检查内存错误。一个简单的问题。Misaligned Shared or Local Address到底是什么意思?