ubuntu16.04+gtx1080ti+caffe安装记录+ N显卡驱动版本过高导致error==cudaSuccess(30 vs. 0) unknown error.

ubuntu16.04+gtx1080ti+caffe安装记录


 这几天安装cuda出现了很多问题,特意记录并分享给需要的人。拿走不谢-:)

我的环境:GTX1080Ti,Ubuntu16.04,intel集显

遇到的问题:我安装显卡驱动出了问题,第一次安装官网最新版驱动381.xx(记得不清楚了),安装完驱动,安装cuda,caffe没有问题,但是训练mnist网络时出错:cannot
create cublas handle. cublas won't be available。
查了之后得知是驱动安装不正确。反思是不是驱动版本太高。第二次直接安装cuda8.0 run文件,并安装其自带的驱动(375.26),安装之后驱动能正常工作,但是无法识别GPU型号。第三次直接安装cuda8.0 deb文件,成功了,驱动版本是(375.66),训练mnist网络也没有问题,但是重启黑屏,当时没有找到很好的方法(后来找到了),就又重新安装了。第四次直接用命令行apt-get install安装的375驱动,刚好是375.66,然后安装cuda8.0 run文件,没有安装其自带的驱动,结果成功了,但是也遇到重启黑屏。(最后面更新部分有怎样下载旧版本驱动的说明)

第一部分:安装nvidia驱动,CUDA8.0和cudnn5.1

备注:开机通过BIOS更改初始显卡可以选择集显(IGFX)或独显(PCIE),独显进入ubuntu需要从启动菜单"高级模式"->"Recovery Mode"->”Resume”,多按几次enter就可以进入文本界面(由于没有驱动)。

Step 1:检查是否安装有nvidia第三方驱动nouveau

lsmod |grep nouveau #若有输出,需要禁止该nvidia第三方驱动,若无,忽略该步骤

sudo touch /etc/modprobe.d/blacklist-nouveau.conf
sudo chmod a+w /etc/modprobe.d/blacklist-nouveau.conf

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

#添加几行:

blacklist nouveau

options nouveau modeset=0

sudo update-initramfs -u

reboot#重启

Step 2:安装显卡驱动(以apt-get install形式安装,驱动的安装可能需要多试几次了,其他安装方式请查看官网或谷歌百度)

Ctrl+Alt+F1#进入文本模式(已经是文本模式忽略)

sudo service lightdm stop#关闭图形化环境

sudo apt-get update

sudo apt-get install nvidia-375

sudo nvidia-smi#安装完验证,若列出了GPU的信息列表则表示驱动安装成功

sudo service lightdm start#会自动切换到图像界面

Step 3:安装CUDA8.0(以run文件为例)

sudo bash cuda_8.0.61_375.26_linux.run

#安装过程中,不安装驱动,因为已经安装过了,其他的默认或选择就好,在网上看到说安装cuda之前,需要安装一些依赖,我有安装过,但不知道有没有用,安装cuda最好看看官网的安装指南CUDA Toolkit Documentation,一步一步来,比较保险

#依赖部分 sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

Step 4:环境变量设置

sudo vim ~/.bashrc#打开用户环境变量文件

#将以下两行加入到文件末尾

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

source .bashrc#让环境变量生效

Step 5:测试CUDA的sammples

cd /usr/local/cuda-8.0/samples#也可以是/home/usrname/NVIDIA_CUDA-8.0_Samples

make

cd bin/x86_64/linux/release/

./deviceQuery#最后能看到Result = PASS就算成功

./bandwidthTest#同上,能看到Result = PASS就算成功

Step 6:配置cuDNN5.1

#下载(需要注册)cuDNN5.1之后进行解压,解压后的文件夹为cuda

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

第二部分:配置安装caffe

Step 1:安装caffe,pycaffe依赖

sudo apt-get upgrade

sudo apt-get install -y build-essential cmake git pkg-config

sudo apt-get install python-protobuf

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-dev

sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

#install ATLAS by sudo apt-get install libatlas-base-dev or install OpenBLAS by sudo apt-get install libopenblas-dev or MKL for better CPU performance

sudo apt-get install libatlas-base-dev

#Python

sudo apt-get install python-dev

sudo apt-get install -y python-pip

sudo apt-get install python-numpy

sudo apt-get install python-matplotlib

sudo pip install scikit-image

Step 2:配置Makefile.config

sudo cp Makefile.config.example Makefile.config

sudo vim Makefile.config

#根据个人情况修改文件:

USE_CUDNN := 1#若使用cudnn

USE_OPENCV := 1

USE_LEVELDB := 1

USE_LMDB := 1

CUDA_DIR := /usr/local/cuda

PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include

PYTHON_LIB := /usr/lib

WITH_PYTHON_LAYER := 1#若要使用Python来编写layer

#以下两行比较重要,否则会报错

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/hdf5/serial /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

Step 3:编译caffe

make all

make test

make runtest

make pycaffe#不用python接口可以去掉

(需要设置环境变量后可用

sudo echo export PYTHONPATH="/path/to/caffe/python" >> ~/.bashrc

source ~/.bashrc)

make distribute#可不用,把所有执行的相关文件放在一个目录下

#如果没有什么问题的话,就应该算成功了

Step 4:验证caffe

#用mnist网络验证

cd /xx/xx/caffe-master#回到Caffe根目录

./data/mnist/get_mnist.sh#下载MNIST数据库并解压缩

./examples/mnist/create_mnist.sh#将其转换成Lmdb数据库格式

./examples/mnist/train_lenet.sh#训练网络,没有问题应该能看到损失与精度数值,至此,恭喜你大功告成!

第三部分:重启循环进入登录界面,重启黑屏解决办法

question 1:重启之后重复进入登录界面解决办法(如果cuda deb安装驱动,没有/proc/driver/nvidia,执行nvidia-xconfig也能解决)

利用启动菜单"高级模式"->"Recovery
Mode"->”Resume”,等系统到登陆界面,按下”Ctrl+Alt+F1”,输入用户名密码登陆后,进行以下操作(可能要执行几次):

sudo nvidia-xconfig

#当成功建立/etc/X11/xorg.conf并备份,则说明成功

question 2:重启之后黑屏(安装nvidia驱动容易出现这个问题),解决办法

sudo vim /etc/default/grub

#将quiet splash”改为”quiet splash nomodeset”

sudo update-grub

reboot

第四部分:参考的教程,在这里表示衷心的感谢

blog.csdn.net/xuzhongxi

blog.csdn.net/Liekkas_J

CUDA Toolkit Documentation

---------------------------第一次更新2017.11.17----------------------

驱动的问题:最近发现cuda工作又不正常了,运行pytorch例程,出现RuntimeError: CUDNN_STATUS_INTERNAL_ERROR,然后运行caffe例程,出现syncedmem.hpp:19] Check failed: error == cudaSuccess (30 vs. 0) unknown error,查看了一下驱动版本为最新的384.xx,以前cuda正常工作时的驱动是375.66,然后我尝试重新安装375.66,无奈用命令行安装375版本后,发现显示的版本还是384,并且caffe、pytorch还是原来的错误,官网上又只能下载最新的版本,折腾了好几天,终于找到安装旧版本的方法,由于官网的驱动下载地址每次都只是改了个驱动号而已,因此只需要更改下载链接中驱动的版本号即可,比如官网给的最新驱动384的下载链接为us.download.nvidia.com/,改为375.66的为us.download.nvidia.com/,就可以下载旧版本的驱动。

备注:个人感觉官方下载的驱动比apt-get install安装的驱动好用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预编译版,总体过程感觉还是挺简单的,但是由于在网上找的参考资料并没有和自己遇到的情况完全一样的,所以把自己的安装过程记录下来,方便和自己一样的后来人进行安装,同时也自己作个记录留作备忘。其实预编译版的CARLA本身几乎不用什么命令行进行安装,主要步骤只有解压缩和拷贝文件,和极少的命令行安装操作。但是相关依赖以及其它的CARLA所使用的一些工具需要一起安装好,下面一起来看看安装步骤吧。_ubuntu22.04安装carla
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载Ubuntu 20 安装包_ubuntu20下载
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装rally, pip3 install -r requirements.txt 时提示如下: 说明openssl 已安装。解决:1. pip3 install --upgrade pip , 结果输出如下 ..._error: command '/usr/bin/gcc' failed with exit code 1
文章浏览阅读1.1k次。自己刚踩坑装好的W11 WSL2 miniconda_wsl2 cuda
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standalone的,会有一点区别(不识别 下面的 -localhost no)上面的命令会在~/.vnc/目录下生成一个 passwd文件。具体端口号,可以查看vncserver -list返回结果中的RFB PROT。作用是vncserver启动的时候运行这些命令,把桌面程序启动起来。如果希望用某个用户比如 demo登录,就用su切换到这个用户。桌面版默认就已安装,服务器版需要手动安装,并启动。关闭某个会话可以用下面的命令。远程地址输入ip:port。查看全部的vnc会话。_ubuntu vncserver
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主要是连接一个远程的code-server服务,code-server服务安装在什么系统,调用的就是什么系统的环境,如这里使用ubuntu进行安装code-server,那使用的就是ubuntu环境,如需要go,python,java开发,需要在Ubuntu安装相关环境,创建的文件夹和项目也是在Ubuntu里面.这种方式其实在访问vscode的时候利于可以随时随地进行连接使用,且不受设备影响。
安装Ubuntu上超好用的终端Terminator。通过添加软件源、更新源、安装Terminator等步骤完成。
文章浏览阅读1.1k次,点赞83次,收藏74次。不要嫌弃Ubuntu的单调的终端界面啦,快来试试这些有意思的命令_ubuntu系统有趣的玩法
文章浏览阅读2.5k次。在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。通过上面的信息可以看到,/dev/vda2 目录下还剩余45G,那么就可以把swap文件生成在/dev/vda2目录下。在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。# bs 为块的大小,count 创建多少个块。# 执行命令后,删除创建的swap目录即可。#把生成的文件转换成 Swap 文件。2、创建一个swap文件。_ubuntu20修改swap大小
文章浏览阅读2.9k次,点赞2次,收藏10次。记录RV1126的SDK编译错误,以及解决处理_command exited with non-zero status 1
文章浏览阅读1.1w次,点赞22次,收藏101次。【记录】ubuntu20.04安装nvidia显卡驱动_ubuntu20.04安装nvidia显卡驱动
文章浏览阅读727次,点赞6次,收藏27次。在嵌入式Linux开发过程中,可能遇到uboot无法通过nfs服务从Ubuntu下载系统镜像(TTTTTT)的问题。如果你使用的是较新版本的Ubuntu,那么其**默认内核将不支持nfs2**!而**uboot仅支持到nfs2**,因此我们需要修改系统内核以及nfs配置文件,开启nfs2服务。**此问题非常棘手**,因为问题出现的时间太近,并且使用的人少。由于是2023年后才出现的问题,**chatgpt也无法解答**!本文参考网络上多篇博客资料,是解决此问题的最新办法。
ubuntu系统下安装软件的方法有多种,包括使用apt工具、deb软件包安装、源码编译安装以及通过软件中心安装。还有一种以 .run 后缀的软件包也可以在ubuntu系统下安装。具体的安装方法可以通过百度搜索来获取。
文章浏览阅读814次。本篇目的:Xubuntu如何安装pkg-configpkg-config是一个计算机软件包,用于帮助开发人员查找、定位和使用依赖库。它通常用于构建软件时,开发人员需要指定程序所依赖的外部库的位置和版本信息。使用pkg-config,开发人员可以很容易地查找、检索和导出这些依赖库的信息,从而简化了软件的构建过程。_ubuntu中怎么下载pkg-config
文章浏览阅读2k次。ubuntu创建共享文件夹_ubuntu20.04共享文件夹
文章浏览阅读2.9k次,点赞74次,收藏73次。对于有长期远程桌面需求的用户,建议将cpolar套餐升级到专业套餐,支持配置固定的公网TCP端口,且带宽也会相应的增大,支持更高效便捷的远程桌面连接Ubuntu系统。【cpolar内网穿透支持http/https/tcp协议,支持永久免费使用,不限制流量,无需公网IP,也不用进入路由器设置,操作简单。隧道创建成功后,点击左侧仪表盘的状态——在线隧道列表,查看xrdp隧道的所生成的公网TCP端口地址,复制下来。,使用cpolar内网穿透映射3389端口,生成公网TCP端口地址,实现在公网环境下,_ubuntu 局域网桌面
文章浏览阅读3.2k次。而在linux的ubuntu版本中,又多出两类用户:安装ubuntu系统的源用户xxx,其与root具有相同权限,仅在执行命令时,前面加sudo。在ubuntu中,用命令deluser username可以直接删除用户账号及家目录,而用centos7中的命令userdel -r username才能达到同样目的。在ubuntu中,没有moduser命令,centos7中的usermod修改用户信息的命令,同样可以用在ubuntu中。在系统中,创建新的用户或称为账号,一般需要多步操作。_ubuntu创建一个新用户
文章浏览阅读1.6w次,点赞4次,收藏23次。系统的许多日志文件都存储在 /var/log 目录中。你可以使用 ls /var/log 命令来列出可用的日志文件。/var/log/Xorg.0.log:包含 X 服务器的日志信息(图形界面)。打开DASH,搜索日志或者log,打开app,这个是/var/log的界面版。这将显示系统日志的末尾,并提供有关系统崩溃和错误的信息。/var/log/kern.log:包含内核日志信息。/var/log/dmesg:包含开机时的日志信息。/var/log/syslog:包含系统日志信息。_ubuntu查看系统日志
文章浏览阅读857次。首先将source.list复制为source.list.bak备份,然后将source.list内容改为需要的镜像源列表即可。Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。本节均为 Ubuntu 20.04 的镜像源列表。若为其他版本,将所有focal更改为其他版本代号即可。_apt 国内源