【发布时间】:2013-01-17 14:56:31
【问题描述】:
以下链接指向的代码适用于 Tesla C1060,但不适用于配备 Quadro 3000M 的移动工作站。
这主要是代码的作用:
Quadro 3000M 上的执行只是跳过内核并在几毫秒内输出一个空白图像。 Tesla C1060 上的执行在(比如说)100 秒内输出处理后的图像。奇怪的是,在过去的几天里,c1060 上的执行也显得相当不可预测(有时会跳过内核,有时会输出奇怪的数字为 -10^12,..)。我不明白这种行为。 会不会是驱动版本问题?
提前感谢您的帮助。
ps。 ubuntu 11.10 上的两台机器
Quadro 3000M ---> Cuda compilation tools, release 4.1, V0.2.1221
Tesla C1060 ---> Cuda compilation tools, release 4.1, V0.2.1221
编辑:问题很可能与我的 2 张卡的不同 GPU 架构有关。
【问题讨论】:
-
Q3000m 通常有 2GB,C1060 有更多。你分配了多少 GPU 内存?您还应该对内核调用进行错误检查。您是否在 Q3000M 上运行 X?
-
1)cudaMemGetInfo(&f, &t) 在内核给出 free=1727807488, total= 2147024896 之前。 2) 如果我放置一些 errorChecks 我得到错误@line 75 : CUDA Runtime API error 4: unspecified发射失败。 3) 是的,我正在运行 X,我将尝试在禁用 X 的情况下运行代码。谢谢
-
Quadro 3000M 是费米部件。与基于 GT200 的 C1060 相比,它改进了内存保护。您的代码很可能在某处有越界访问,导致代码在 Fermi 设备上失败。尝试使用 cuda-memcheck 运行您的代码并查看它报告的内容。
-
我确实得到了未对齐的地址pastebin.com/VF4YeKvA。奇怪的是,这段代码在不同的 GPU 代中的工作方式不同,我想我应该将注意力集中在我访问 *src 的内核代码(第 33 行)pastebin.com/E60Rvu9j