cudaMalloc无法分配显存

本人最近调试程序时,使用cudaMalloc分配显存,当执行到这条语句时下面会显示提示信息:Microsoft C++ 异常: 内存位置 0x0012f58c 处的 cudaError。请问这是怎么回事儿???假如在cudaMalloc()外面再加一个CUDA_SAFE_CALL()程序执行到这一步就会直接退出。

分配的空间超过显存?看一下Size?

分配了多少的显存?

分配了多少的显存?

分配了256MB

卡子显存多少的?

开始写错了,是256KB,不好意思。现在是这样的问题,我的电脑不是N卡,我看网上说可以先虚拟的跑一下程序,不知道有什么问题没有。

别上去就直接什么CUDA_SAFE_CALL之类的刚烈行为加上去,

我建议楼主进行如下步骤进行检测:
(1)确定你有一块N卡,而不是A卡。因为最近CUDA的风头很猛,很多人在A卡上或者模拟器上搞CUDA!(这是严肃的,不是笑话,已经不止一个人了。。)
(2)确定你的N卡安装了驱动程序,并且基本的SDK examples里的例子能跑起来。
(3)如果(1)(2)都确定了没问题了,请去掉你的CUDA_SAFE_CALL, 改为cudaError_t result = cudaMalloc(你的参数); 然后在此句后面下个断点,用肉眼仔细观察result的值,这一般可以直接给你为何你不能分配的原因以及如果是因为cudaMalloc()之前的语句的错误,而导致的问题,也可以在此返回。

额。。。不是N卡???我回复完毕后就看到楼主如此喜感的回答。。。那建议楼主购买N卡,或者尝试在gpuocelot下模拟执行。。。

请问CUT_DEVICE_INIT(argc,argc)函数中的两个参数是什么意思,怎么样获得》。。。。。。

此问题已经被别人(timeshute)在另外一个板块(有问必答),进行了询问,并由本人在此版块给予了回复。

(1)出于对论坛的尊重,建议不要重复发帖;
(2)处于对论坛和本版版主的尊重,我不回复此重复的回帖。