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.
...全文
1155 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以上显存.
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 【FAST FWR310 无线路由更新程序】是一个专门为FAST FWR310型号无线路由设备设计的固件升级方案,其主要目的在于改善设备的工作表现、纠正已知的系统缺陷或引入全新的操作特性。对无线路由器进行固件更新,实质上是指替换或升级其核心操作系统(即固件),从而使其运行状态得到进一步优化。 在无线路由器的持续使用阶段,用户有时会遭遇若干操作难题,例如网络连接的频繁中断、数据传输速率不高、无线信号覆盖范围有限等情况。针对此类挑战,通过安装新的固件(即刷机包),能够有效应对上述问题,因为新固件或许已经针对这些普遍存在的问题进行了优化处理。不仅如此,固件升级还能开启一些隐藏的功能选项,或者兼容第三方固件,例如OpenWRT,从而让用户能够进行更深入的系统自定义配置及管理。 FWR310 V5.0升级软件20160301是该刷机包的明确版本标识,显示出这是针对FAST FWR310路由器推出的第五代固件,并且发布日期为2016年3月1日。此版本的更新内容可能涵盖以下几个方面: 1. 运行效能的调优:借助于对路由器处理流程与内存分配的改善,能够加快数据交换速率,减少响应时间,从而全面提升网络的工作效能。 2. 安全防护的强化:更新内容中可能融入了对新兴网络安全风险的防御机制,用以保障用户的资料安全。 3. 互操作性的扩展:可能增强了与更多设备及协议的适配能力,比如最新的无线通信标准或设备连接模式。 4. 运行稳定性的提升:修复了可能引发路由器系统崩溃或意外重启的已知故障,延长了设备的稳定运行周期。 5. 新特性集成:或许增添了提升用户体验的功能,例如远程操作控制、家长监管功能、服务质...

591

社区成员

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

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