Check failed:error == cudaSuccess(30 vs. 0) unkown error

今天被这个问题折腾惨了。昨天Caffe使用还一切正常,今天就突然出现了这个问题,如下图所示:


我尝试重新安装CUDA,重新编译安装Caffe,都没有成功解决。后来灵机闪现,想到是不是显卡驱动的问题(其实我就应该想到的,哎!)

右击我的电脑->管理->设备管理->显示适配器


如图(现在是正常状态),GT 730M显卡驱动前面应该是一个黄色小三角内部有个小叹号。右击->卸载。成功卸载后重新安装就Ok了。可以使用鲁大师,驱动精灵等软件安装。我是重启后显卡驱动程序自动安装的。

目前,这个问题总算是解决了。做个小总结吧。

无论是在Linux还是在Windows下,如果我们在使用Caffe时遇到Check failed: error(state) == cudaSuccess( ** vs. 0) 这样的问题,我们首先要考虑的是显卡驱动是否安装正确,如果显卡驱动安装正确检查CUDA是否安装正确。一般就是就这两个问题。

下面几个可能对你有用的连接

faster-rcnn训练时出现error == cudaSuccess (30 vs. 0)


http://stackoverflow.com/questions/40279737/caffe-gpu-cuda-error-after-training-check-failed-error-cudasuccess-30-vs


### CUDA 设备计数失败的原因分析 当 `cudaGetDeviceCount` 或者 `cudaGetDeviceProperties` 函数返回未知错误 (`error code: 999`) 时,通常表明存在一些底层硬件或者驱动兼容性问题。以下是可能原因以及解决方案: #### 可能原因一:CUDA 驱动版本不匹配 NVIDIA 的 GPU 和 CUDA 工具包之间需要严格的版本适配。如果安装的 NVIDIA 显卡驱动程序版本低于所使用的 CUDA Toolkit 版本,则可能导致此类错误。 - **验证方法**: 使用命令行工具运行 `nvidia-smi` 来确认当前显卡驱动版本是否支持所需的 CUDA 功能[^1]。 ```bash nvidia-smi ``` - 如果显示的驱动版本较低,建议升级至最新稳定版 NVIDIA 驱动程序。 --- #### 可能原因二:GPU 不被识别或未启用 某些情况下,操作系统未能正确检测到 GPU,这可能是由于 BIOS 设置禁用了 PCIe 插槽中的 GPU,或者是多 GPU 系统中配置不当所致。 - **解决措施**: - 检查 BIOS 中是否有选项关闭了独立显卡功能并重新启动计算机。 - 对于多 GPU 环境,尝试通过环境变量指定默认设备 ID: ```cpp int device_id = 0; cudaError_t err = cudaSetDevice(device_id); if (err != cudaSuccess) { printf("Failed to set CUDA Device %d with error '%s'\n", device_id, cudaGetErrorString(err)); } ``` 上述代码片段可以用来强制设置特定的 GPU 作为计算资源[^3]。 --- #### 可能原因三:CUDA 应用构建过程存在问题 即使硬件正常工作,在开发阶段也可能遇到编译器路径缺失或其他配置失误引发的功能失效现象。 - **排查手段**: - 添加必要的头文件路径至 Visual Studio 的“VC++ 目录”的“包含目录”字段; - 将库所在位置加入“库目录”,同时更新链接器部分的附加依赖项列表以反映实际需求。 例如,假设项目依赖 cuBLAS 库,则需确保如下条目已正确定义: - 包含目录: `${CUDA_PATH}\include` - 库目录: `${CUDA_PATH}\lib\x64` - 追加依赖项: `cublas.lib; cusolver.lib` 此外,对于 Windows 平台上的 Win32 子系统应用,还需调整预处理器宏定义(`WIN32_LEAN_AND_MEAN`, `_CRT_SECURE_NO_WARNINGS`)及子系统类型为控制台(console)。 --- #### 关联案例解析 针对 caffe 类框架内部实现细节提到的内容进一步补充说明,比如随机数生成机制涉及到了静态转换操作(static_cast),这是为了保证不同平台间数据类型的统一性和可移植性[^2]。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值