运行CAFFE出现cublas未初始化错误,求适配Ubuntu16.04的CUDA版本方案
解决Caffe运行时
cublas_status_not_initialized错误的CUDA版本适配方案 这个check failed: status == cublas_status_success (1 vs. 0) cublas_status_not_initialized错误我在部署Caffe时碰到过好多次,结合你Ubuntu 16.04 + CUDA 8.0.61的环境,核心问题大概率是CUDA版本与显卡驱动、显卡架构或Caffe编译环境不匹配,下面给你一步步落地的解决思路:
一、先排查显卡驱动与CUDA 8.0的兼容性
CUDA 8.0对显卡驱动版本有硬性要求:必须≥367.48。先确认你当前的驱动版本是否达标:
- 运行命令查看驱动:
nvidia-smi - 如果驱动版本低于367.48,先卸载现有驱动:
sudo apt-get purge nvidia* sudo reboot - 再安装适配CUDA 8.0的驱动:可以直接通过CUDA 8.0安装包自带的驱动,或者单独下载367.48版本的驱动文件执行安装。
二、如果显卡架构不支持CUDA 8.0,升级到适配的CUDA版本
CUDA 8.0仅支持到Pascal架构(比如GTX 10系列显卡),如果你的显卡是Turing及以后架构(GTX 16xx、RTX 20xx+),CUDA 8.0完全不兼容,必须升级。针对Ubuntu 16.04,最稳定的选择是CUDA 9.0,步骤如下:
- 下载CUDA 9.0的Ubuntu 16.04版本runfile安装包
- 禁用nouveau开源驱动:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u sudo reboot - 切换到文本模式安装:
重启后按sudo systemctl set-default multi-user.target sudo rebootCtrl+Alt+F1登录命令行 - 执行CUDA安装包:
安装时注意:如果已经装了适配的驱动,不要勾选安装驱动,只安装CUDA Toolkit和Samples即可sudo sh cuda_9.0.176_384.81_linux.run - 配置环境变量:
编辑~/.bashrc文件,添加以下内容:
生效环境变量:export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATHsource ~/.bashrc - 验证CUDA版本:
nvcc --version,确认输出为CUDA 9.0
三、重新编译Caffe,确保与CUDA版本匹配
不管是保留CUDA 8.0还是升级到9.0,都需要重新编译Caffe:
- 进入Caffe根目录,复制配置模板:
cp Makefile.config.example Makefile.config - 修改
Makefile.config关键配置:- 取消注释
USE_CUDA := 1 - 设置
CUDA_DIR := /usr/local/cuda-8.0(或/usr/local/cuda-9.0) - 如果是CUDA 9.0,根据显卡算力修改
CUDA_ARCH,比如Turing架构添加:-gencode arch=compute_75,code=sm_75
- 取消注释
- 编译Caffe:
make clean make all -j$(nproc) make test -j$(nproc) make runtest -j$(nproc)
额外注意事项
如果系统中存在多个CUDA版本,一定要确保环境变量PATH和LD_LIBRARY_PATH指向当前使用的版本,避免版本冲突导致的初始化失败。
内容的提问来源于stack exchange,提问作者LotusPanda
相关产品推荐
相关产品推荐

