运行mtgp32 cuRAND设备API示例时出错

时间:2013-12-09 12:41:14

标签: cuda mersenne-twister



我正在尝试使用来自cuRAND的Mersenne Twister的设备版本。我尝试在cuRAND API文档中使用第二个示例:
3.6. Device API Examples 我冒昧地将代码复制成单独的要点:
curand.cu

这是我在使用CUDA Toolkit 5.5在9400M(CC 1.1,Mac OS X 10.8)和GTS 250(CC 1.1,Linux)上执行代码时获得的。使用-arch=sm_20仅删除警告,但结果是相同的:

$ nvcc curand.cu && ./a.out
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
Error at curand.cu:93

奇怪的是,9600 GT(CC 1.0,Linux)和GTX 570(CC 2.0,Linux)上的一切似乎都运行良好:

$ nvcc curand.cu && ./a.out
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
Fraction with low bit set was 0.4999963531494
^^^^ kernel_mtgp_example PASSED

我真的想在9400M上运行Mersenne Twister(最好是来自cuRAND)。可能吗?如果是这样,您的建议是什么?

谢谢!

更新
现在我也得到了9600 GT(Linux)上的错误:

$ ./a.out
GPUassert: unknown error curand.cu 99

偶尔我会得到以下内容(9600 GT,Linux):

$ ./a.out
GPUassert: the launch timed out and was terminated curand.cu 99

注意:这可能是由托管GPGPU的计算机的负载引起的(它不是空闲的)。

要羞辱:
无法使用 - 9400M(Mac),9600GT(Linux),GTS250(Linux)
适用于 - GTX570(Linux)
以上所有内容都在CUDA工具包5.5上运行。

1 个答案:

答案 0 :(得分:0)

看起来您在与显示器相同的GPU上运行(在评论中确认)。可能是你正在超时。有关如何禁用超时的示例,请参阅this answer,或者您可以减少样本数。