我对 cuda 很陌生,几周前才开始阅读有关并行编程和 cuda 的内容。安装 cuda 工具包后,我正在浏览 sdk 示例(随工具包的安装提供)并想尝试其中的一些。我matrixMul
从 0_Simple 文件夹开始。该程序执行良好(我使用的是 Visual Studio 2010)。现在我想更改矩阵的大小并尝试使用更大的矩阵(例如 960X960 或 1024x1024)。在这种情况下,某些东西崩溃了(我得到黑屏,然后是消息:显示驱动程序停止响应并已恢复)。
我正在更改代码中的这两行(来自 main 函数):
dim3 dimsA(8*4*block_size, 8*4*block_size, 1);
dim3 dimsB(8*4*block_size, 8*4*block_size, 1);
在他们之前:
dim3 dimsA(5*2*block_size, 5*2*block_size, 1);
dim3 dimsB(5*2*block_size, 5*2*block_size, 1);
有人可以指出我做错了什么。并且我是否应该在此示例中更改其他内容以使其正常工作。谢谢!
编辑:就像你们中的一些人建议的那样,我更改了超时值(0 不知何故对我不起作用,我将超时设置为 60),所以我的驱动程序不会崩溃,但我得到了大量错误列表,例如:... ……
Error! Matrix[409598]=6.40005159, ref=6.39999986 error term is > 1e-5
Error! Matrix[409599]=6.40005159, ref=6.39999986 error term is > 1e-5
这是否与内存分配有关。我应该在那里进行更改吗?它们可能是什么?