cudaSafeCall() Runtime API error

cntan 2009-06-21 10:06:56
各位好,请教一下。我将nvidia的显卡装好了,然后又装上了toolkit 与 sdk,然后在执行bandwidthTest例子的时候出现了问题。出的错误信息如下所示,想请教一下是哪儿的原因呢?是不是显卡太弱了(GeForce 8400M CS):


C:\ProgramData\NVIDIA Corporation\NVIDIA CUDA SDK\bin\win32\Release>bandwidthTes
t.exe
Running on......
device 0:h(;
Quick Mode
Host to Device Bandwidth for Pageable memory
cudaSafeCall() Runtime API error in file <bandwidthTest.cu>, line 657 : feature
is not yet implemented.

C:\ProgramData\NVIDIA Corporation\NVIDIA CUDA SDK\bin\win32\Release>bandwidthTes
t.exe
Running on......
device 0:x(?
Quick Mode
Host to Device Bandwidth for Pageable memory
cudaSafeCall() Runtime API error in file <bandwidthTest.cu>, line 657 : feature
is not yet implemented.

C:\ProgramData\NVIDIA Corporation\NVIDIA CUDA SDK\bin\win32\Release>bandwidthTes
t.exe
Running on......
device 0:x(?
Quick Mode
Host to Device Bandwidth for Pageable memory
cudaSafeCall() Runtime API error in file <bandwidthTest.cu>, line 657 : feature
is not yet implemented.
...全文
1074 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bit525 2011-11-14
  • 打赏
  • 举报
回复
请教一下:我linux下,新创建的线程里调用内存复制函数出错,cudaSafeCall() Runtime API error : invalid argument.
同样的函数在main函数里就正常。什么原因阿
Superfriend 2010-03-19
  • 打赏
  • 举报
回复
多谢楼上指点,恳请继续不吝赐教啊!

我装的sdk和toolkit都是3.0的,不过貌似还是测试版。。
(g++ 4.3,4.4不支持CUDA就找了一个方法降级了)

[Quote=引用 16 楼 l7331014 的回复:]

引用 15 楼 superfriend 的回复:
我的是Quardo FX 570M, 256MB显存(在Linux下的驱动看是512MB..)
CUDA 3.0
Ubuntu 9.10

有个类似的错误:
cudaSafeCall() Runtime API error in file <convolutionFFT2D.cu>, line 195 : CUDA version i……
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 superfriend 的回复:]
我的是Quardo FX 570M, 256MB显存(在Linux下的驱动看是512MB..)
CUDA 3.0
Ubuntu 9.10

有个类似的错误:
cudaSafeCall() Runtime API error in file <convolutionFFT2D.cu>, line 195 : CUDA version is insufficient for CUDART v……
[/Quote]

这个不是"类似"的问题,是不同的原因.
程序和运行库版本不一致.LS的安装的sdk和toolkit是同一版本吗?
Superfriend 2010-03-18
  • 打赏
  • 举报
回复
我的是Quardo FX 570M, 256MB显存(在Linux下的驱动看是512MB..)
CUDA 3.0
Ubuntu 9.10

有个类似的错误:
cudaSafeCall() Runtime API error in file <convolutionFFT2D.cu>, line 195 : CUDA version is insufficient for CUDART version.

我觉得不是显卡问题。。
superwondy 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 superwondy 的回复:]
我也遇到这样的问题,显卡是能识别,可是还是cudaSafeCall()函数有错!我的是cudasdk3.0 release版本

bandwidthTest.exe Starting...

Running on...

Device 0: Quadro NVS 140M
Quick Mode

Host to Device Bandwidth, 1 Device(s), Paged memory
  Transfer Size (Bytes)        Bandwidth(MB/s)
  33554432                    1100.8

Device to Host Bandwidth, 1 Device(s), Paged memory
  Transfer Size (Bytes)        Bandwidth(MB/s)
  33554432                    1049.9

cudaSafeCall() Runtime API error in file <d:/bld_sdk10.pl/devtools/SDK10/Compute
_3.0/SDK10/Compute/C/src/bandwidthTest/bandwidthTest.cu>, line 718 : out of memo
ry.
大家,能给点建议吗?!
[/Quote]
我考虑过了,是不是因为我的显卡的问题。因为按照例程的输出结果,我的结果在处理device to device时出错。我的显卡是Quadro NVS 140M,独显128M的。顺便问下大家,我在编译template例子是,vs2005总是报告出错,缺少cutil32D.dll这个文件,可是我试过重装过了,还是没看到那个文件啊。为什么?!
superwondy 2010-02-05
  • 打赏
  • 举报
回复
我也遇到这样的问题,显卡是能识别,可是还是cudaSafeCall()函数有错!我的是cudasdk3.0 release版本

bandwidthTest.exe Starting...

Running on...

Device 0: Quadro NVS 140M
Quick Mode

Host to Device Bandwidth, 1 Device(s), Paged memory
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 1100.8

Device to Host Bandwidth, 1 Device(s), Paged memory
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 1049.9

cudaSafeCall() Runtime API error in file <d:/bld_sdk10.pl/devtools/SDK10/Compute
_3.0/SDK10/Compute/C/src/bandwidthTest/bandwidthTest.cu>, line 718 : out of memo
ry.
大家,能给点建议吗?!
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 superwondy 的回复:]
那么这样说我的显存不够就做不了cuda的相关开发了吗。还是因为3.0的版本要求高。我找个低版本的行不行呢?
[/Quote]

和sdk版本应该没有关系,N建议运行cuda的卡的显存在256M以上...
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 superwondy 的回复:]
引用 10 楼 l7331014 的回复:
128M,显存不够.
cutil32D.dll在cuda的sdk目录中.

其实我还是不懂,我不知道那个cutil32D.dll应该怎么用?请教……
感谢!
[/Quote]

放到path中有的目录中,比如cuda\bin.
superwondy 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 l7331014 的回复:]
128M,显存不够.
cutil32D.dll在cuda的sdk目录中.
[/Quote]
其实我还是不懂,我不知道那个cutil32D.dll应该怎么用?请教……
感谢!
superwondy 2010-02-05
  • 打赏
  • 举报
回复
那么这样说我的显存不够就做不了cuda的相关开发了吗。还是因为3.0的版本要求高。我找个低版本的行不行呢?
谢谢,那个文件我找到了。可是怎么用呢。要吧它放到我的工程的debug文件目录下就可以了吗?
  • 打赏
  • 举报
回复
128M,显存不够.
cutil32D.dll在cuda的sdk目录中.
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cntan 的回复:]
也即是说如果deviceCount的值为0的话,就直接返回,但是现在并没有直接返回,证明了deviceCount的值不为0,但后面却不能够获取device的名字。感觉有点奇怪哈,还请指教!
[/Quote]

device存在,已经找到,这点是确定的.但名称不对就不清楚了.呵呵.
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cntan 的回复:]
先谢谢 l7331014 兄。

657行的代码为:


655 //allocate device memory
656 unsigned char* d_idata;
657 cutilSafeCall( cudaMalloc( (void**) &d_idata, memSize));

这几个语句是在函数testHostToDeviceTransfer()中被调用了。

另外,我的显卡的专用视频内存为128M,是不是这个内存太小了的原因?

还有我现在如果用VS 2005编译SDK中的工程的话,就会卡死,然后动都动不了。最后只能强行关机。


[/Quote]

内存太小.malloc申请失败.
cntan 2009-06-22
  • 打赏
  • 举报
回复
刚才又用VS 2005编译了一下程序,又死机了。汗。
cntan 2009-06-22
  • 打赏
  • 举报
回复
而且最开始获取设备名的时候也有问题,

Running on......
device 0:h(;
Running on......
device 0:x(?

看了一下代码,发现


if( cutGetCmdLineArgumentstr(argc, argv, "device", &device) )
{
int deviceCount;
cudaGetDeviceCount(&deviceCount);
if( deviceCount == 0 )
{
printf("!!!!!No devices found!!!!!\n");
return;
}
if( strcmp (device, "all") == 0 )
{
printf ("\n!!!!!Cumulative Bandwidth to be computed from all the devices !!!!!!\n\n");
startDevice = 0;
endDevice = deviceCount-1;
}
else
{
startDevice = endDevice = atoi(device);
if( startDevice >= deviceCount || startDevice < 0)
{
printf("\n!!!!!Invalid GPU number %d given hence default gpu %d will be used !!!!!\n", startDevice,0);
startDevice = endDevice = 0;
}
}
}
printf("Running on......\n");
for( int currentDevice = startDevice; currentDevice <= endDevice; currentDevice++)
{
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, currentDevice);
printf (" device %d:%s\n", currentDevice,deviceProp.name);
}


也即是说如果deviceCount的值为0的话,就直接返回,但是现在并没有直接返回,证明了deviceCount的值不为0,但后面却不能够获取device的名字。感觉有点奇怪哈,还请指教!
cntan 2009-06-22
  • 打赏
  • 举报
回复
先谢谢 l7331014 兄。

657行的代码为:


655 //allocate device memory
656 unsigned char* d_idata;
657 cutilSafeCall( cudaMalloc( (void**) &d_idata, memSize));

这几个语句是在函数testHostToDeviceTransfer()中被调用了。

另外,我的显卡的专用视频内存为128M,是不是这个内存太小了的原因?

还有我现在如果用VS 2005编译SDK中的工程的话,就会卡死,然后动都动不了。最后只能强行关机。

再次感谢 l7331014 兄。

[Quote=引用 2 楼 l7331014 的回复:]
还有,LZ的bandwidthTest.cu中line 657是那行代码?
可能SDK版本不一样,我装的是SDK2.2, line 657是注释.
[/Quote]
  • 打赏
  • 举报
回复
还有,LZ的bandwidthTest.cu中line 657是那行代码?
可能SDK版本不一样,我装的是SDK2.2, line 657是注释.
  • 打赏
  • 举报
回复
LZ的显存有多少?从bandwidthTest来看,至少要64MB给cuda用.官网手册上要求是256MB以上显存.

580

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧