Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
0. 前言
- 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动;
- 此安装是在 Intel 集显下的图形化界面,即用集显做 display,用 NVIDIA 独显做计算;循环登陆问题是因为安装时没有加 --no-opengl-libs 参数,默认安装了 OpenGL,覆盖掉了原来显卡的 OpenGL 库
- 若事先单独安装了 NVIDIA 驱动,且在 NVIDIA 显卡下的图形化界面安装 cuda(即用 NVIDIA 显示同时做显示和计算),则在安装 cuda 时,取消安装 NVIDIA 驱动的选项
- 关于自己的电脑 GPU,Linux内核等是否满足安装 cuda的要求,请参考官方安装指南
1. 下载安装文件和官方指南
登陆官网 https://developer.nvidia.com/cuda-downloads,下载相应版本的安装文件,注意安装文件类型选择 runfile(local)

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

2. 禁用 nouveau 驱动(nouveau是 ubuntu16.04 默认安装的第三方开源驱动,安装cuda会跟nouveau冲突,需要先禁用)
- 先查看 nouveau 是否被禁用,输入以下命令,若有输出,则说明 nouveau 在运行中
lsmod | grep nouveau
- 修改 /etc/modprobe.d/blacklist.conf 文件
sudo vim /etc/modprobe.d/blacklist.conf
在末尾加入
blacklist nouveau
options nouveau modeset=
- 执行以下命令,并重启
sudo update-initramfs –u
- 再执行以下命令,查看 nouveau 是否已被禁用,若无任何输出,说明禁用成功
lsmod | grep nouveau
3. 文本命令行模式运行 runfile 文件安装CUDA
- 按 Ctrl + Alt + F1 键进入文本命令行模式,输入用户名和密码
- 先关闭图形化界面
sudo service lightdm stop
cd 到 runfile 文件保存的路径,进行安装(重点!!! 要么在此处加上 --no-opengl-libs 选项,要么在后面通过交互式界面进行手动选择)
sudo sh cuda_10..168_418.67_linux.run --no-opengl-libs
执行命令后,稍等一会儿,会出现交互界面,输入 accept,过一会儿会出来选择页面进行手动设置(如是否安装 nvidia 驱动及驱动设置),最后选择 install
注意:若不小心安装了 OpenGL,则后面会遇到循环登陆的问题,原因就是 NVIDIA显卡 的 OpenGL 库覆盖了当前 Intel 显卡的库,解决办法是再登入到文本命令行模式,用以下命令先卸载 cuda 和 NVIDIA驱动,再按正确的步骤重新安装
sudo /usr/local/cuda-10.1/bin/cuda-uninstaller
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 ]; 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 - `
for i in `seq $N`; do
mknod -m /dev/nvidia$i c $i
done
mknod -m /dev/nvidiactl c
else
exit
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m /dev/nvidia-uvm c $D
else
exit
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
6. 编译 cuda 提供的 samples
cd /home/xxx/NVIDIA_CUDA-.1_Samples
make
等待一段时间,编译 成功后,二进制文件会存放在 NVIDIA_CUDA-10.1_Samples/bin 中,执行下面的二进制文件,看是否成功
cd /home/lxxx/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release
./deviceQuery

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

Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)的更多相关文章
- Ubuntu 16.04 安装显卡驱动后循环登录和无法设置分辨率的一种解决方案
1. 安装环境 电脑:MSI GP63 显卡:GeForce GTX 1070 系统:Ubuntu 16.04 驱动版本:NVIDIA 384.130 2. 循环登录 如果按照这篇文章 Ubuntu ...
- Ubuntu 16.04安装NVIDIA驱动后循环登录问题
问题描述 最近买了两块NVIDIA Titan X Pascal显卡装到了服务器(运行Ubuntu 16.04)上.为了使用这两块GPU显卡,首先需要安装显卡驱动,安装方式为 #安装一个依赖文件,并更 ...
- VMware虚拟机 Ubuntu 16.04 安装
第一步:VMware虚拟机 Ubuntu 16.04 安装 第二步: 解决窗口全屏问题 linux下给root用户设置密码 修改root用户的密码 $ sudo passwd root 密码会要求重复 ...
- Ubuntu 16.04 安装 VMware Tools(解决windows和Ubuntu之间不能互相复制粘贴文件的问题)
Ubuntu 16.04安装虚拟工具VMware Tools,指的是在虚拟机VMWare安装Ubuntu 16.04后再安装VMware Tools的过程.很多人接触Linux都是从虚拟机开始,而安装 ...
- Ubuntu 16.04安装QQ国际版图文详细教程
因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...
- Ubuntu 16.04 安装Mysql 5.7 踩坑小记
title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...
- Ubuntu 16.04安装JDK(转载)
1.简单的安装方法 安装JDK的最简单方法应该就是使用apt-get来安装了,但是源一般是OpenJDK,如果需要安装Oracle的JDK这种方法就不合适了,直接跳过看下面的章节. 1.使用ctrl+ ...
- Ubuntu 16.04安装sogou 拼音输入法
一.更换为国内的软件源 安装搜狗输入法之前请先更换为国内的软件源,否则无法解决依赖问题.首先,用以下命令打开源列表: sudo gedit /etc/apt/sources.list #用文本编辑器打 ...
- [转]Ubuntu 16.04安装有道词典
原文:https://www.cnblogs.com/scplee/archive/2016/05/13/5489024.html 以前用Ubuntu 14.04 的时候,直接下载有道词典官方deb安 ...
随机推荐
- Rust 入门 (五)
定义并介绍结构体 结构体和我们前面学习的元组类似,结构体中的每一项都可以是不同的数据类型.和元组不同的地方在于,我们需要给结构体的每一项命名.结构体较元组的优势是:我们声明和访问数据项的时候不必使用索 ...
- telnet指令研究—以网络聊天程序为例
一.telnet指令 Telnet取名自Telecommunications和Networks的联合缩写,是早期个人计算机上连接到服务器主机的一个网络指令,由于存在安全问题,现在已经很少被使用.在wi ...
- SpringBoot和SpringCloud的版本对应关系
1.详细的SpringBoot和SpringCloud对应的关系: Spring官方对应关系 2.springCloud与各组件的版本对应关系 官方文档
- 【Luogu P3174 】[HAOI2009]毛毛虫
前言: 虽然很多人和我想法一样 ,但我还是不要脸地写了这题解 题目: 链接 大意: 在一棵树上取一条最长链以及它所连接的结点总共的结点个数 思路: 取链: 用树形\(DP\)就可以轻而易举的解决这个问 ...
- .Net Core3.1下使用Swagger搭建web api项目
前言:微软于前天发布.net core 3.1正式版,并将长期支持3.1.所以我听到这个消息后就急忙下载.net core 3.1的SDK和Runtime,应该是公司最先用3.1的攻城狮了
- VMware修改默认开机方式
.首先删除已经存在的符号链接 ---------------------------------------------------------------------------------- rm ...
- TestNG系列(二)TestNG注解
前言 TetsNG提供了很多注解,允许测试人员灵活地组织测试用例 一.@Test @Tets是TestNG的核心注解,被注解的方法,表示为一个测试方法. description属性 @Test(des ...
- 自动列表排序.html
li:before { content: counter(chapter) ". "; counter-increment: chapter; font-weight: bold; ...
- Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用
目录 1 下载 Docker 镜像 2 部署Web项目 2.1 通过Dockerfile自定义项目镜像 2.2 启动自定义镜像, 生成一个容器 2.3 另一种启动方式: 交互式启动 3 (附) 向镜像 ...
- 洛谷 题解 P5535 【【XR-3】小道消息】
我又双叒叕被包菜辣! P5535 [XR-3]小道消息(这道题是个大水题 在题干中这位良心的作者就提醒了我们: 你可能需要用到的定理--伯特兰-切比雪夫定理. 那么什么是伯特兰-切比雪夫定理? 我也不 ...