0. 前言

  • 直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动;
  • 为避免浪费显存,图形化界面显示是在Intel 集显环境下,NVIDIA 独显做计算;循环登陆问题是因为安装时没有加 --no-opengl-libs 参数,默认安装了 OpenGL,覆盖掉了原来显卡的 OpenGL 库

1. 下载安装文件和官方指南

  • 登陆官网 https://developer.nvidia.com/cuda-downloads,下载相应版本的安装文件,注意安装文件类型选择 runfile(local)




ubuntu安装mongodb 网络缓慢 ubuntu modprobe_vim


  • 下载官方的安装指南,便于参考


ubuntu安装mongodb 网络缓慢 ubuntu modprobe_vim_02


2. 禁用 nouveau 驱动

nouveau 是 ubuntu 为 nvidia 驱动开发的开源驱动,是在内核中的,不支持 3D 加速。输入以下命令会打开 Software & Updates 页面,点击 Additional Drivers 可以查看并安装专有的 nvidia 驱动。


software-properties-gtk


ubuntu安装mongodb 网络缓慢 ubuntu modprobe_modprobe安装_03


我们手动安装的 nvidia 驱动会跟 nouveau 冲突,需要先禁用

  • 先查看 nouveau 是否被禁用,输入以下命令,若有输出,则说明 nouveau 在运行中
lsmod | grep nouveau


  • 修改 /etc/modprobe.d/blacklist.conf 文件
sudo vim /etc/modprobe.d/blacklist.conf


在末尾加入


blacklist nouveau 
options nouveau modeset=0


  • 执行以下命令,并重启
sudo update-initramfs –u


  • 再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功
lsmod | grep nouveau


3. 文本命令行模式运行 runfile 文件安装CUDA

  • 按 Ctrl + Alt + F1 键进入文本命令行模式,输入用户名和密码
  • 关闭图形化界面
sudo service lightdm stop


  • cd 到 runfile 文件保存的路径,进行安装
  • 重点!!!要加 --no-opengl-libs 选项
  • 或者先不加--no-opengl-libs 选项,在后面的交互模式下手动选择
sudo sh cuda_10.1.168_418.67_linux.run --no-opengl-libs


执行命令后,稍等一会儿,会出现交互界面,输入 accept,选择要安装的选项进行安装

注意:
若没加参数 --no-opengl-libs,后面会遇到循环登陆的问题,原因就是 NVIDIA显卡 的 OpenGL 库覆盖了当前 Intel 显卡的库,解决办法是再登入到文本命令行模式,用以下命令先卸载 cuda 和 NVIDIA驱动,再按正确的步骤重新安装


sudo /usr/local/cuda-10.1/bin/cuda-uninstaller 
# 卸载 10.0
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl

sudo /usr/bin/nvidia-uninstall


  • 若能重新进入图形化界面,则基本安装成功
sudo service lightdm start


4. 检查 Device Node Verification


ls /dev/nvidia*


若结果显示 /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm,则说明安装成功;若显示类似 No such file or directory等信息,则进行如下操作


sudo vim /etc/rc.local


第一行为 #!/bin/sh -e,把 -e 选项去掉,然后把下面的文本复制到 exit 0 之前,保存退出


/sbin/modprobe nvidia 
if [ "$?" -eq 0 ]; then   
    # Count the number of NVIDIA controllers found.   
    NVDEVS=`lspci | grep -i NVIDIA`   
    N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`   
    NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`   
    N=`expr $N3D + $NVGA - 1`   
    for i in `seq 0 $N`; do 
        mknod -m 666 /dev/nvidia$i c 195 $i   
    done 
    mknod -m 666 /dev/nvidiactl c 195 255 
else  
    exit 1 
fi 
/sbin/modprobe nvidia-uvm 
if [ "$?" -eq 0 ]; then   
    # Find out the major device number used by the nvidia-uvm driver   
    D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`   
    mknod -m 666 /dev/nvidia-uvm c $D 0 
else   
    exit 1 
fi


重启后,再次输入以下命令,此时应该会出现 /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm,说明安装成功


ls /dev/nvidia*


5. 设置环境变量,写入 /etc/profile 文件


sudo vim /etc/profile


在最后加入两行(64位系统为lib64,32位系统为lib)


export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}  
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


重启,检查环境变量是否设置成功

  • 验证驱动版本
cat /proc/driver/nvidia/version


  • 验证CUDA Toolkit
nvcc -V


至此,cuda 已安装成功

6. 编译 cuda 提供的 samples


cd /home/xxx/NVIDIA_CUDA-10.1_Samples
make -j8


等待一段时间,编译 成功后,二进制文件会存放在 NVIDIA_CUDA-10.1_Samples/bin 中,执行下面的二进制文件,看是否成功


cd /home/lxxx/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release
./deviceQuery


ubuntu安装mongodb 网络缓慢 ubuntu modprobe_CUDA_04


./bandwidthTest


若出现以下信息,则说明成功


ubuntu安装mongodb 网络缓慢 ubuntu modprobe_vim_05