问题标签 [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 中二维扩散(热)方程的解
我已经检查过关于这个问题的早期问题,但无法看到它与这里的关系。
我正在用 CUDA 求解 2d 扩散方程,结果发现我的 GPU 代码比它的 CPU 代码慢。
这是我的代码:
主函数
这段代码的问题在于它比简单的仅 CPU 迭代方法运行得慢。我对探查器知之甚少,直到现在我尝试使用cuda-memcheck
which 给出0
错误。我怎样才能知道代码的哪一部分执行缓慢并加快速度?我正在使用 Linux 环境。提前感谢您的帮助。
c - Nvidia CUDA - 通过指针传递结构
我在将指向结构的指针传递给设备函数时遇到问题。我想在本地内存中创建一个结构(我知道它很慢,这只是一个例子)并通过指针将它传递给另一个函数。问题是当我使用 memcheck 调试它时,我得到错误:
Program received signal CUDA_EXCEPTION_1, Lane Illegal Address.
Switching focus to CUDA kernel 0, grid 1, block (0,0,0), thread (0,0,0), device 0, sm 7, warp 0, lane 0
0x0000000000977608 in foo (st=0x3fffc38) at test.cu:15
15 st->m_tx = 99;
如果我在没有 memcheck 的情况下调试它,它工作正常并给出预期的结果。我的操作系统是 RedHat 6.3 64 位内核 2.6.32-220。我使用 GTX680、CUDA 5.0 并使用 sm=30 编译程序。
我用于测试的代码如下:
有什么建议么?谢谢你的帮助。
cuda - Linux 上的 CUDA 5.0 cuda-gdb 需要专用 CPU?
在 CentOS 5.5 上安装全新的 CUDA 5.0 Linux,我无法 gdb。所以我想知道你是否还需要一个用于 Linux cuda-gdb 的专用 GPU?我尝试使用 X11 的 Vesa 设备驱动程序,但得到相同的结果。分析工作,运行应用程序工作,但尝试运行 cuda-gdb 给出:
警告:在 0x2aaaaaaab000 添加的符号文件系统提供的 DSO 中找不到可加载的部分
有什么建议么?
eclipse - nsight eclipse for linux 调试错误
我正在使用 RHEL 6.2 和 nsight eclipse 版本来调试我的 cuda 程序。调试模式存在问题,即定制Eclipse 上的cuda-gdb。当 PC 进入第一个 Cuda API 调用时,调试终止并出现以下警告:
我还在 eclipse bugs 中找到了相关的 bug 报告,但似乎它已被转发到 gdb: https ://bugs.eclipse.org/bugs/show_bug.cgi?id=350426
经过一番观察,似乎 libexpat.so 应该在编译时链接到 cuda-gdb。您是否能够解决此问题?
我系统上的 cuda-gdb 有这样的输出:
但是,这里暗示了 ldd 应该是什么样的: https ://bugs.archlinux.org/task/27841
附言。我也知道 Cuda SDK 5.0 RC 与我的 RHEL 6.2 不兼容;Nsight 被记录为仅与 RHEL 6.0 和 6.1 兼容,而下载链接显示为 RHEL 6.x。
exception - cuda gdb:指示的内核不在代码中
我最初的问题是,我的函数有很长的参数列表,超出了允许作为参数传递给 cuda 内核的内存(我不记得有多少字节,因为我已经有一段时间了处理)。所以,我绕过这个问题的方法是定义一个新结构,它的成员是指向其他结构的指针,我以后可以从内核中取消引用。
...这是当前问题开始的地方:在我试图从内核中取消引用指针(我之前创建的结构的成员)时,我得到CUDA_EXCEPTION_5, Warp Out-of-range Address
...来自 cuda-gdb。最重要的是,内核名称和参数(被报告为“此时不存在”,cuda-gdb 给出的错误信息不是我在代码中创建的。
现在,更多细节:
以下是涉及的结构:
这就是我试图将内核的参数分组到 main 中的方式:
...这就是内核中发生的事情:
最后,这就是 cuda-gdb 给出的输出:
我必须注意我没有定义任何函数,__device__
或者__global__
在我的代码中调用fdivide
......
此外,可能很重要的一点是,在调试器内的程序运行开始时,尽管我用 编译了我的 cuda c 文件-arch=sm_20 -g -G -gencode arch=compute_20,code=sm_20
,但我得到了,
非常欢迎任何可以帮助我解决此问题的答案或提示或建议!请注意,我最近才开始使用 cuda-c 进行编程,而且我对 cuda-gdb 的经验不是很丰富。我在 C 代码中进行的大多数调试都是通过检查代码各个点的输出来“手动”进行的。
此外,此代码在 tesla M2090 上运行,并且还编译为在 2.0 架构上运行。
cuda - cuda-gdb 是否需要 root 权限?
我正在使用cuda-sdk
and
cuda-toolkit
包在 Arch Linux 上进行 GPGPU 开发。我尝试以cuda-gdb
普通用户身份在一个简单的程序上运行导致:
如果我cuda-gdb
以 root 身份运行,它会正常运行:
测试程序driver.cu
是:
driver.c
使用以下命令编译:
如何cuda-gdb
在没有 root 权限的情况下运行?
更多信息:输出nvidia-smi
为:
显示器连接到 Quadro,我在 Tesla 上运行 CUDA 应用程序。
cuda - 带有 cuda-memcheck 错误的 cuda-gdb
我有这个 cuda 代码,当我用 cuda-memcheck 执行时它没有返回错误,它正常退出,我得到的结果实际上是预期的......同时,有一个文件“cuda-memcheck-(在这里放置各种数字).out”创建,即为空。
当我在 cuda-gdb 下运行相同的程序时,它也正常退出,没有错误报告。
但是当我“设置 cuda memcheck on”(在 cuda-gdb 下)然后运行程序时,会创建一个文件“cuda-memcheck.out”,上面写着:
启动 cuda-memcheck...
cuda-memcheck 遇到错误 (3,2,2)
一旦我从 cuda-gdb 中执行“运行”,就会发生这种情况。然后,在执行开始后不久(实际上非常接近 CUFFT 内核执行),我得到以下信息:
和 cuda-gdb 崩溃。
我是否应该认为我的代码中实际上存在错误的内存访问?还是在初始化 cuda-memcheck 时遇到的错误???
有人见过这种行为吗?
谢谢你的任何想法。
linux - cuda-gdb 在 Linux 上的 nsight 中不起作用
我在我的 Ubuntu 12.10 中安装了 cuda 5,它运行良好,我也可以在终端中通过 cuda-gdb 编译和调试。我正在尝试使用 nsight,它可以毫无问题地编译和执行我的代码,但是当我尝试调试时出现以下错误
我正在使用 ubuntu 12.10 64 位并使用 optirun (bumblebee) 启动 cuda 可执行文件和 nsight,因为我有 GTX 675M (optimus)。我通过 apt-get 安装了 cuda-gdb,我得到了 4.2 版:
我认为这不是问题,因为我可以单独使用它(无需 nsight)。我也将 nsight 更改为使用 optirun 启动 cuda-gdb,但仍然收到相同的错误。
linux - linux 上的 nsight 无法与 cuda-gdb 一起使用
我在我的 Ubuntu 12.10 64 位上安装了 cuda 5。我有一个 GTX 675M,所以我使用 bumblebee 在我的 cuda 设备上运行应用程序。我正在通过 bumblebee (optirun) 运行 nsight:
它工作得很好,我可以编译和执行应用程序。问题是当我尝试在 nsight 中使用 cuda-gdb 时,单击调试按钮时出现以下错误:
但是如果我尝试在控制台上使用 cuda-gdb 它可以工作:
知道会发生什么吗?
macos - cuda-gdb 运行>控制台权限被拒绝 OS X
我正在尝试在 OS X 上调试我的 CUDA 代码,我需要在>console
模式下运行它,因为运行它通常会冻结屏幕。但它一直给我“权限被拒绝”错误。有解决办法吗?