首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cuda-gdb检查全局设备内存

使用cuda-gdb检查全局设备内存
EN

Stack Overflow用户
提问于 2011-07-14 02:26:38
回答 3查看 3.7K关注 0票数 7

我正在尝试使用cuda-gdb来检查全局设备内存。即使在cudaMemcpy之后,这些值似乎也都是零。但是,在内核中,共享内存中的值是好的。有什么想法吗?cuda-gdb会检查全局设备内存吗?看起来主机内存和设备共享内存都很好。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2016-06-18 02:26:29

假设d_array是指向设备存储器的指针,

代码语言:javascript
复制
(cuda-gdb) print d_array
$1 = (double *) 0x13082c3000

要访问它的值,首先将其转换为全局内存指针:

代码语言:javascript
复制
(cuda-gdb) print ((@global double *)d_array)[0]
$2 = 0.5

要访问阵列,请执行以下操作:

代码语言:javascript
复制
(cuda-gdb) print ((@global double *)d_array)[0]@3
$3 = {0.5, 0.4, 0.3}
票数 15
EN

Stack Overflow用户

发布于 2012-06-01 01:15:37

目前,只有在CUDA内核启动后,cuda-gdb才能读取您复制到全局内存中的数据。这可能会在未来的版本中得到改善。

票数 1
EN

Stack Overflow用户

发布于 2011-07-14 05:18:26

检查全局内存中的数据的一种简单方法是将数据从全局内存写回主机,并查看这些值。但我不确定是否有可能用cuda-gdb检查这一点。

顺便问一下,您是如何知道全局内存中的值都为零的。如果您的最终结果完全为零,则意味着您的代码中存在错误。如果CUDA不知道确切的值是什么,它将返回零。例如,大部分CUDA不返回NAN,而是返回零。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6683721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档