make runtest caffe::CPUDevice [ FAILED ]

本文详细介绍了在编译Caffe源码并进行运行测试时遇到的常见错误,包括涉及GPU和CPU设备的错误,并提供了三种实用的解决方案,涵盖了多显卡环境配置、IntelMKL设置及使用Atlas替代的情况。

转载自:https://blog.youkuaiyun.com/striker_v/article/details/51983173

编译caffe源码的大致过程如下: make all make pycaffe make test make runtest

小编在第N次搭建Caffe环境时,前面几步都很顺利,到最后一步make runtest这里出了问题。本来看着动漫等着make runtest运行完就去Happy,看到报错整个人都不好了。报错内容大致是这样的: [----------] Global test environment tear-down [==========] 906 tests from 133 test cases ran. (72964 ms total) [ PASSED ] 899 tests. [ FAILED ] 7 tests, listed below: [ FAILED ] SGDSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice [ FAILED ] AdaGradSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice [ FAILED ] NesterovSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice [ FAILED ] AdaDeltaSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice [ FAILED ] AdamSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice [ FAILED ] RMSPropSolverTest/0.TestSnapshot, where TypeParam = caffe::CPUDevice [ FAILED ] RMSPropSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice

废话已经说了不少,给大家提供三种解决方案。

1.如果提示: [ FAILED ] RMSPropSolverTest/0.TestSnapshotShare, where TypeParam = caffe::GPUDevice 注意,和上面不同,这里的报错信息里面显示的是“GPUDevice”而不是“CPUDevice”,这种情况可能是因为配置了多显卡环境,可以使用安装CUDA时运行./deviceQuery时标注的0号GPU("Device 0")跑跑测试试试看。

使用如下命令: export CUDA_VISIBLE_DEVICES=0 然后重新make runtest

2.当提示CPU错误时,如下: [ FAILED ] AdamSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice 如果使用了Intel MKL作为BLAS,可能是Intel MKL的浮点数计算功能没有设置正确。

使用如下命令: export MKL_CBWR=AUTO 然后重新make runtest

3.当提示CPU错误时,如下: [ FAILED ] AdamSolverTest/0.TestSnapshotShare, where TypeParam = caffe::CPUDevice 而且使用第二步中的命令完全不起作用时,建议使用Atlas替换Intel MKL。

Ubuntu中使用命令: sudo apt-get install libatlas-base-dev 安装Atlas。 修改Makefile.config, gedit Makefile.config 把 BLAS := mkl 改为 BLAS := atlas ,保存后退出。 重新编译make runtest即可。 另外,如果以上步骤都不起作用,可以试试换一个低版本的Boost库。目前明确Boost1.55.0木有问题。

注:网上有人这么说,但是我觉得这个报错和Boost版本木有关系,我一开始用Boost1.58.0,报错,换成Boost1.55.0,还是报错,换成最新的Boost1.61.0,依然报错。

Caffe中出现 'Check failed: status == CUBLAS_STATUS_SUCCESS (13 vs. 0) CUBLAS_STATUS_EXECUTION_FAILED' 错误,意味着cuBLAS库在执行时失败。可以按照以下方法解决: ### 1. 检查硬件和驱动 确保硬件正常工作,并且安装了合适版本的显卡驱动。可以通过以下步骤检查和更新驱动: - **NVIDIA官方网站**:访问NVIDIA官方网站,根据显卡型号和操作系统下载并安装最新的驱动程序。 - **系统设备管理器**:在Windows系统中,可以通过设备管理器检查显卡驱动的状态,并进行更新操作。 ### 2. 检查cuBLAS库安装 确保cuBLAS库已正确安装,并且版本与CUDA版本兼容。可以通过以下步骤进行检查: - **确认CUDA版本**:在终端中运行 `nvcc --version` 命令,查看当前安装的CUDA版本。 - **检查cuBLAS库文件**:确认cuBLAS库文件(如 `libcublas.so`)存在于CUDA安装目录的 `lib64` 或 `lib` 文件夹中。 ### 3. 检查环境变量 确保环境变量配置正确,特别是 `LD_LIBRARY_PATH` 环境变量包含了CUDA和cuBLAS库的路径。可以在终端中运行以下命令临时设置环境变量: ```bash export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 为了使环境变量永久生效,可以将上述命令添加到 `.bashrc` 或 `.bash_profile` 文件中。 ### 4. 检查内存使用情况 cuBLAS执行失败可能是由于显存不足导致的。可以通过以下方法检查和解决内存问题: - **查看显存使用情况**:在终端中运行 `nvidia-smi` 命令,查看显存的使用情况。 - **减少批量大小**:在Caffe的配置文件中,尝试减小 `batch_size` 参数的值,以减少显存的使用。 ### 5. 检查代码和数据 确保代码中没有错误,并且输入数据的格式和维度正确。可以通过以下方法进行检查: - **检查代码逻辑**:仔细检查Caffe的配置文件和代码,确保没有逻辑错误。 - **检查数据格式**:确保输入数据的格式和维度与模型的要求一致。 ### 6. 重新编译Caffe 有时候,重新编译Caffe可以解决一些潜在的问题。可以按照以下步骤重新编译Caffe: ```bash make clean make all -j$(nproc) make test -j$(nproc) make runtest -j$(nproc) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值