ubuntu nvidia


原文链接: ubuntu nvidia

ESXi的ubuntu16.04虚拟机安装pyCaffe
ubuntu16.04 titan rtx 24g +显卡驱动+cuda10.1+cudnn环境配置 - He_9520的博客 - CSDN博客
【环境搭建】Ubuntu18.04:cuda10+cudnn7.6+Tensorflow2.0 - 简书
Unable to determine the device handle for GPU 0000:03:00.0: Unknown Error

https://download.nvidia.com/XFree86/Linux-x86_64/440.82/NVIDIA-Linux-x86_64-440.82.run
http://cn.download.nvidia.com/XFree86/Linux-x86_64/440.82/NVIDIA-Linux-x86_64-440.82.run

解决Nvidia驱动安装后黑屏闪烁,无法启动图形界面

Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be
used when you restart X? Any pre-existing X configuration file will be backed up.

                                          Yes                                           No

解决方式:

  1. 使用最新版驱动 NVIDIA-Linux-x86_64-440.82.run
    2.安装到最后一步的时候选择No 不更新X配置。 重要!!!

sudo vi /etc/default/grub
quiet splash acpi_osi=linux nomodeset

ubuntu安装显卡驱动之后分辨率出问题

ubuntu安装显卡驱动之后工具栏图标变得很大,打开的窗口不能调节大小,重装驱动不管用

最后的解决办法: 终端输入nvidia-xconfig

#cuda9.0
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda

### add caffe yolov3
export PYTHONPATH="/home/ubuntu/caffe/models/twmht_caffe/distribute/python:$PYTHONPATH"
export LD_LIBRARY_PATH="/home/ubuntu/caffe/models/twmht_caffe/distribute/lib:$LD_LIBRARY_PATH"

####### add protobuf lib path ########
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig

# 2019年 11月 22日 星期五 09:33:06 CST
# HuaWei LiteOS Linux, Cross-Toolchain PATH
export PATH="/opt/hisi-linux/x86-arm/arm-himix200-linux-v2/bin:$PATH"
export PATH="/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH"
#1、下载完成,打开终端,先删除旧的驱动:
sudo apt-get purge nvidia*  
#2、 禁用自带的 nouveau nvidia驱动 (很重要!)通过如下命令创建一个文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf  
#在文件内添加如下内容:
blacklist nouveau  
options nouveau modeset=0 
#更新一下
sudo update-initramfs -u  
#修改后需要重启系统。确认下Nouveau是已经被你干掉,使用命令: 
lsmod | grep nouveau 
#3、 重启系统至init 3(文本模式),也可先进入图形桌面再运行init 3进入文本模式,再安装下载的驱动就无问题,首先我们需要结束x-window的服务,否则驱动将无法正常安装
#Alt+Ctrl+F1 和 Alt+Ctrl+F7 进行切换
#关闭X-Window
sudo service lightdm stop 
#切换到tty1控制台
Alt+Ctrl+F1
#3 执行如下命令开始安装
sudo ./NVIDIA.run  (NVIDIA 你的驱动,可能直接输入这个命令就可以执行安装?)
#我的是 NVIDIA-Linux-x86_64-375.20.run
#4 安装完成后重新启动X-Window
sudo service lightdm start  
#Ctrl+Alt+F7进入图形界面
#如果安装后驱动程序工作不正常,使用下面的命令进行卸载:
sudo sh ~/NVIDIA-Linux-x86_64-367.44.run --uninstall 
#5 检查是否安装成功,过程跟第一种方案一样,输入
nvidia-smi 
nvidia-settings
————————————————
版权声明:本文为CSDN博主「darren2015zdc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/darren2015zdc/article/details/73910766

1. 安装 GPU 驱动

切换GCC 版本


sudo update-alternatives --remove gcc /usr/bin/gcc-4.8
sudo update-alternatives --remove g++ /usr/bin/g++-4.8


ls /usr/bin/gcc*
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --config gcc
gcc -version


1.1 nouveau 驱动问题

nouveau 是系统自带的一个显示驱动程序,需要先将其禁用,然后再进行下一步操作,否则在安装显卡驱动时,会提示:You appear to be running an X server …,然后安装失败。分别打开如下两个文件(如果没有就创建一个),并在其中输入如下两句,然后保存。

echo 'blacklist nouveau' >/etc/modprobe.d/nvidia-installer-disable-nouveau.conf

vim /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
vim /lib/modprobe.d/nvidia-installer-disable-nouveau.conf

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

使配置生效:

sudo update-initramfs -u

重启电脑。

reboot

执行以下命令,如果没有任何输出则证明禁用nouveau成功。
查看禁用是否成功
lsmod |grep nouveau*

先卸载原有N卡驱动

#for case1: original driver installed by apt-get:
sudo apt-get remove --purge nvidia*

#for case2: original driver installed by runfile:
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-430.50.run --uninstall

如果原驱动是用apt-get安装的,就用第1种方法卸载。
如果原驱动是用runfile安装的,就用–uninstall命令卸载。其实,用runfile安装的时候也会卸载掉之前的驱动,所以不手动卸载亦可

1.2 接下来添加ppa源 这步必须,

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo add-apt-repository ppa:graphics-drivers/ppa

1.3 查看合适版本的nvidia驱动

ubuntu-drivers devices

(注意:大多数选择recommended的,但是此处我提前看了cuda版本cuda_10.1.243_418.87.00_linux.run,里面有写418,所以为了以防万一,,,,,我选择安装418【我也不确定是否合理】)

接下来,到了最重要的安装环节

首先进入命令行桌面(ctrl+f1~f6)【图形界面:ctrl+f7】

sudo service lightdm stop #关闭图形界面

sudo apt-get install nvidia-418 #安装

sudo service lightdm start

reboot #重启
重启后可以查看下是否安装成功

nvidia-smi

  1. 关闭图形界面
    sudo service lightdm stop
    1
    以上命令会关闭图形界面,等屏幕变黑后,按 Ctrl-Alt+F1 进入命令行界面,输入用户名和密码登录。

  2. 安装驱动
    进入驱动所在的目录。

给文件加上权限:

sudo chmod a+x NVIDIA-Linux-x86_64-430.50.run
1
开始安装:

sudo ./NVIDIA-Linux-x86_64-430.50.run –no-opengl-files # 参数不可省略
1
如果有旧版本的驱动,会提示你要不要继续,继续会卸载旧版本。然后后面的选项基本都是选“No”,直到安装完成。

重启电脑。

  1. 测试
    开启图形界面:

sudo service lightdm start
1
在终端输入:

$ nvidia-smi

————————————————
版权声明:本文为CSDN博主「MemoryD」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/memoryd/article/details/101053181

2. 驱动安装完成 安装 CUDA Toolkit

2 cuda10Toolkit的安装

cuda 8.0

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

2.1 下载对应版本的安装包
CUDA Toolkit      | Linux x86_64 Driver Version | Windows x86_64 Driver Version

:---------------------:|:---------------------------:|:-----------------------------:

CUDA 10.1.105     |          >= 418.39          |           >= 418.96          
CUDA 10.0.130     |          >= 410.48          |           >= 411.31          

CUDA 9.2 (9.2.88) | >= 396.26 | >= 397.44
CUDA 9.1 (9.1.85) | >= 390.46 | >= 391.29
CUDA 9.0 (9.0.76) | >= 384.81 | >= 385.54
CUDA 8.0 (8.0.61 GA2) | >= 375.26 | >= 376.51
CUDA 8.0 (8.0.44) | >= 367.48 | >= 369.30

离线包下载地址:https://developer.nvidia.com/cuda-toolkit-archive 下载 runfile(local)文件

2.1.0 安装cuda

sudo chmod 777 cuda_10.1.243_418.87.00_linux.run
sudo ./cuda_10.1.243_418.87.00_linux.run

cuda主要有以下参数:

--no-opengl-libs:表示只安装驱动文件,不安装OpenGL文件。必需参数,原因同上。注意:不是-no-opengl-files。
--uninstall (deprecated):用于卸载CUDA Driver(已废弃)。
--toolkit:表示只安装CUDA Toolkit,不安装Driver和Samples
--help:查看更多高级选项。

2.2配置使用环境
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH

检查安装是否成功
nvcc -V

2.3 编译samples例子

#编译并测试设备 deviceQuery:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

2.4(可选)cuda 版本切换

sudo rm -f /usr/local/cuda     #删除现有的软链接

sudo ln -s /usr/local/cuda10.0 /usr/local/cuda    # 切换到 cuda 10.0
sudo ln -sf /usr/local/cuda-10.1 /usr/local/cuda  # 切换到 cuda 10.1
sudo ln -sf /usr/local/cuda-9.0 /usr/local/cuda   # 切换到 cuda 9.0
sudo ln -sf /usr/local/cuda-8.0 /usr/local/cuda   # 切换到 cuda 8.0

nvcc --version    #查看当前使用的cuda版本

2.5 卸载cuda 10.1

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-10.1/
Samples: Installed in /home/ubuntu/, but missing recommended libraries

Please make sure that

  • PATH includes /usr/local/cuda-10.1/bin
  • LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64,
    or add /usr/local/cuda-10.1/lib64 >> /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.1/bin

3. cuDNN7.6.2安装

3.1 离线包下载地址:https://developer.nvidia.com/rdp/cudnn-archive

cuDNN Library for Linux
cuDNN 安装指导

3.2 Installing From A Tar File

$ tar -xzvf cudnn-10.1-linux-x64-v7.6.3.30.tgz
Copy the following files into the CUDA Toolkit directory, and change the file permissions.

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

4. 安装多GPU支持 NCCL

在多个 GPU 上运行 Caffe 需要使用 NVIDIA NCCL。可使用以下命令安装 NCCL:

git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install -j4

NCCL 库和文件头将安装在 /usr/local/lib/usr/local/include

`nccl/build/lib/libnccl.so' -> '/usr/local/lib/libnccl.so'
'nccl/build/lib/libnccl.so.2' -> '/usr/local/lib/libnccl.so.2'
'nccl/build/lib/libnccl.so.2.4.8' -> '/usr/local/lib/libnccl.so.2.4.8'
'nccl/build/lib/libnccl_static.a' -> '/usr/local/lib/libnccl_static.a'
'nccl/build/lib/pkgconfig/nccl.pc' -> '/usr/local/lib/pkgconfig/nccl.pc'
'nccl/build/include/nccl.h' -> '/usr/local/include/nccl.h'
'nccl/build/include/nccl_net.h' -> '/usr/local/include/nccl_net.h'

安装NVIDIA-DOCKER

1.2 GCC问题

太容易忽略

1.3Kernel问题

# 资料 https://unix.stackexchange.com/questions/115289/driver-install-kernel-source-not-found
yum -y install kernel-devel kernel-header

二、Docker 安装

2.1 Ubuntu安装

# 直接这么安装,别折腾了。
apt install docker

2.2 Centos安装

# 别折腾了 哥
yum install docker

三、NVIDIA-DOCKER

3.1 Ubuntu 14.04/16.04/18.04, Debian Jessie/Stretch

Ubuntu will install docker.io by default which isn't the latest version of Docker Engine. This implies that you will need to pin the version of nvidia-docker. See more information here.

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker

# Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

3.2 CentOS 7 (docker-ce), RHEL 7.4/7.5 (docker-ce), Amazon Linux 1/2

If you are not using the official docker-ce package on CentOS/RHEL, use the next section.

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo yum remove nvidia-docker

# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
  sudo tee /etc/yum.repos.d/nvidia-docker.repo

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

If yum reports a conflict on /etc/docker/daemon.json with the docker package, you need to use the next section instead.

For docker-ce on ppc64le, look at the FAQ.

3.3 CentOS 7 (docker), RHEL 7.4/7.5 (docker)

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo yum remove nvidia-docker

# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo

# Install the nvidia runtime hook
sudo yum install -y nvidia-container-runtime-hook

# Test nvidia-smi with the latest official CUDA image
# You can't use `--runtime=nvidia` with this setup.
docker run --rm nvidia/cuda:9.0-base nvidia-smi

3.4 Docker与当前Nvidia-docker版本不一致

查找可安装的nvidia docker版本

yum search --showduplicates nvidia-docker

最终输出结果是下面这张图:

查找可安装的nvidia docker版本

yum search --showduplicates nvidia-docker1

最终输出结果是下面这张图:

这里写图片描述

大家可以从中选择自己需要安装的nvidia docker版本,这里我安装的是docker1.12.6版本的。因此我选择安装倒数第一个版本的nvidia docker

可以去参考资料1去看博客.

3.5 参考资料

1. Nvidia-Docker安装使用 -- 可使用GPU的Docker容器

2. NVIDIA-DOCKER-GITHUB

cuda9 卸载 升级cuda10

  1. uninstall_cuda_9.0.pl




cuda cudnn 卸载升级

1.cuda的升级

2.cudnn的升级

我一开始安装的是cuda8.0+cudnn6.0+tensorflow+mxnet,本来是没必要升级的,可是后来又需要安装caffe2,caffe2的官网教程中可以看到,如果使用conda安装的话,就只有cuda8.0+cudnn7.0或者cuda9.0+cudnn7.0了,而我又不想用源码安装caffe2,所以就只有一种办法了,那就是将当前的cuda和cudnn升级到cuda9.0+cudnn7.0。

1.cuda的升级
(1)卸载旧cuda

卸载原来的cuda8.0(注意:不需要卸载显卡驱动,不要给自己找麻烦):

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
卸载之后,会发现 /usr/local/cuda-8.0目录下任然有文件存在,这是cudnn文件,所以还需要将cuda-8.0文件删除干净:

sudo rm -rf /usr/local/cuda-8.0
(2)安装cuda9.0

下载cuda9.0的安装文件 cuda_9.0.176_384.81_linux.run(点击进入下载界面)

执行如下命令:

sudo sh cuda_9.0.176_384.81_linux.run
然后用一本书的书角压住回车键,直到服务条款显示到100%。接着按下面的步骤选择:

accept

n(不要安装driver)

y

y

y

安装完成后,设置环境变量。

(3)修改环境变量

打开主目录下的 .bashrc文件,将相关路径按下面的格式进行修改。例如我的.bashrc文件在/home/wangyuanwei下,如果没有找到,则按Ctrl+H键显示隐藏文件。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0
在终端运行:source ~/.bashrc

(4)检查当前的cuda版本

在终端输入nvcc --version,如果显示下面的文子就说明安装成功了。

2.cudnn的升级
cudnn的升级方法与cuda的升级方法类似。

(1)删除旧版本的cudnn

sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn

(2)安装新版本的cudnn

下载所需要的cudnn版本(点击进入下载界面)

解压文件,并在解压出的cuda文件夹中打开终端,执行如下命令:

sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
(3)建立软链接

在/usr/local/cuda/lib64目录下打开终端,执行如下指令:

sudo chmod +r libcudnn.so.7.0.5
sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
(4)查看当前cudnn的版本

在终端输入

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果出现下图所示版本信息(三个数字的意思是当前版本为7.0.5),说明安装成功。

————————————————
版权声明:本文为CSDN博主「撸起袖子就去干」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wanzhen4330/article/details/81704474

`