当前位置: 首页 > news >正文

Ubuntu 16.04 64位 安装NVIDIA驱动 CUDA9.1和PyTorch

    出于想尝试一下深度学习中PyTorch的LSTM和CNN算法,并且使用GPU来做并行计算的想法,所以需要在自己的笔记本中安装这个PyTorch函数库。

本文的中心及结构

  • 笔记本Windows/Ubuntu双系统-安装Ubuntu
  • 增加nomodeset引导参数解决安装Ubuntu卡在Logo处问题
  • 以PPA在线方式安装Nvidia显卡驱动
  • 安装Anaconda 5.1
  • 以deb(network)方式安装CUDA 9.1
  • 测试CUDA是否成功
  • 安装PyTorch

前提假设

    本文假设读者已掌握Linux的基本命令使用与对Linux的操作方法,故本文将不做过多基本操作描述。

问题描述

    1. 网上已有许多安装教程,为何我还写此篇博客?

        因为不同电脑配置不同,即使遇到相同的问题也未必能够完完全全按照网上已有的方法完全解决,本人折腾了将近3天的时间,重装了至少15次系统,其中尝试各种Ubuntu系统版本(16.04.0, 16.04.1, 16.04.4, 17.04, 17.10.1),各种Nvidia驱动(Nvidia-311,384,387,390),以及网上各种解决方案,将各种方案排列组合不断尝试后最终成功。因此写此博客以作记录,同时为与我遇到相同问题的人提供参考。

    2. 遇到的问题是什么?

        (1)安装Ubuntu时因Nvidia显卡(以下简称N卡)导致安装界面卡在Logo处无法安装

          此问题虽然也困扰我了好一会,不过好在找到了一个作者的Github文章得以解决,更巧的是该作者的笔记本型号竟然与我的相同。解决问题的的办法就是在给Install Ubuntu项增加引导参数$vt_handoff acpi_osi=linux nomodeset,详情请参考链接:https://yingsen1.github.io/2017/04/03/set-up-ubuntu.html 中的《双系统的安装Ubuntu》章节,此处不作详细介绍。

        (2) 打完N卡驱动后,无法成功安装CUDA(本文核心问题)

          本人在此问题上花费最多的时间与精力,最终发现问题所在:Ubuntu的4.13.0-36-generic内核与N卡驱动不兼容导!本人花了很长的时间各种找博客解决此问题后,发现继续找博客不是个办法,因此去翻了CUDA的官方文档介绍了环境要求后发现它对Ubuntu的内核要求为4.4.0,而Ubuntu 16.04.4的内核为4.13.0-36。内核为4.4.0的Ubuntu为16.04.0与16.04.1,但其版本的GCC版本又不符合CUDA 9.1的要求,虽然有更新过GCC版本但后来依然安装失败,但并没有找原因便直接找其他解决方案了。于是直接去寻找其他解决方案,经过不懈的努力,后来找到了一篇英文文章说“Ubuntu的4.13.0-36-generic内核与N卡驱动不兼容导”,并通过:https://www.jianshu.com/p/df677e3fd630 提供的解决方案解决此问题。下图为CUDA 9.1的官网文档中的截图,详情可参考:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html


PyTorch环境要求

CUDA的环境要求主要有(具体如下图所示):

1. Linux操作系统;

    本人使用的为Ubuntu 16.04 64位 LTS版本,镜像名为:ubuntu-16.04.4-desktop-amd64.iso,其内核为:4.13.0-36-generic。

2. Python3.6环境及其包管理工具;

    本人采用的为Anaconda5.1版本(包含Python,conda与pip工具),下载地址为:

                https://www.anaconda.com/download/#linux

3. CUDA 9.1

    CUDA 9.1下载地址:https://developer.nvidia.com/cuda-downloads


上图截图于PyTorch官网:http://pytorch.org/

笔记本配置情况

本人的笔记本配置如下图所示,其实最主要的还是看显卡,显卡为NVIDIA GeForce的GTX 965M


安装步骤

安装Ubuntu 16.04.4 64位 LTS

    安装Ubuntu的教程网上有一大堆,此处不作详细介绍,仅给出安装图解教程链接及注意事项。

    注意事项1:在能够进入正常安装界面之前,请看http://tieba.baidu.com/p/4987077178?pn=1 贴吧的9楼卡在Logo处的问题描述,贴吧的11楼给出解决方案,即选中“Install Ubuntu”按下键盘“E”键后,将光标移至queit splash 后面,按下空格后加上“$vt_handoff acpi_osi=linux nomodeset”的引导参数,最后按下“F10”启动安装则可成功解决卡在Logo界面无法进入安装界面的问题。此问题的原因应该是笔记本双显卡问题导致Ubuntu安装无法通过N卡的检测吧(猜测未经核实,可通过查询nomodeset参数含义了解真实原因)。

    注意事项2:参考下面链接安装Ubuntu时,请务必选对安装的硬盘设备及安装盘,否则极有可能导致你的原系统文件以及硬盘中所有数据的丢失!!!!

    Ubuntu安装图解教程链接1: http://blog.csdn.net/fesdgasdgasdg/article/details/54183577

    Ubuntu安装图解教程链接2:http://blog.csdn.net/chandoudeyuyi/article/details/59651406

安装NVIDIA驱动

    在本人解决问题的过程,不能如同https://yingsen1.github.io/2017/04/03/set-up-ubuntu.html (此作者与我笔记本型号完全相同)其中提到的下载驱动离线安装包(deb)的方式来安装,即通过N卡驱动官网http://www.geforce.cn/drivers 下载deb文件后安装驱动。

    安装方式需通过https://www.jianshu.com/p/df677e3fd630 所述的“PPA途径”,其教程如下(本人解决问题时最新驱动版本为390,故在最后一行中本人所使用命令为 sudo apt-get install-390):

  1. 卸载现有GPU驱动
$ sudo apt-get remove --purge nvidia-*
$ sudo apt-get autoremove
  1. PPA安装新的GPU驱动
# 如果没有add-apt-repository命令,安装 software-properties-common即可
$ sudo add-apt-repository ppa:graphics-drivers
$ sudo apt-get update
# 安装新的驱动nvidia-387.34
$ sudo apt-get install nvidia-387
  1. 重启

安装Python

    本人通过安装Anaconda 5.1来安装Python,下载地址为:https://www.anaconda.com/download/#linux


    下载完成后进入文件的下载路径通过dpkg命令安装,安装完成后需要配置环境变量,通过在~/.bashrc文件末尾中添加export PATH=/anaconda_home/bin:$PATH 将Anaconda的bin目录添加到环境变量中,请将“anaconda_home”替换成你实际安装Anaconda的路径。教程可参考:https://www.linuxidc.com/Linux/2016-08/134259.htm 。

安装CUDA

    本人一开始依然选择了在官网下载离线安装包(deb文件)的方式来安装CUDA 9.1,但此方法无法成功安装,因此同样还是参考:https://www.jianshu.com/p/df677e3fd630 中的最后一步(4)的在线安装的方式来安装,其具体安装方法请参考官网:https://developer.nvidia.com/cuda-downloads,选择与安装教程如下(分别复制下面步骤1 2 3 4在命令行中运行):


    安装完成后还需要按照:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html的官方教程中的“7.1.1 Environment Setup”中的环境变量设置将CUDA添加到环境变量中。

测试CUDA

    CUDA的测试依旧参考官网教程:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html中的“7.2.3. Verify the Installation”章节中的编译Samples,并运行编译后的程序文件。其大致意思为将“CUDA-9.1”文件夹中的Samples文件夹复制到“~/NVIDIA_CUDA-9.1_Samples”中再编译(备份思想:不动原始文件)。

安装PyTorch

    上述所有内容全部执行成功后,可通过PyTorch给出的命令来安装PyTorch,链接:http://pytorch.org/

    命令如下图所示:即 conda install pytorch torchvision cuda91 -c pytorch




相关文章:

  • 从零开始部署Guns V4.0 (SpringBoot开源框架)教程
  • 云计算:数据中心之虚拟机
  • codeblocks不支持16位,“64位Windows不兼容”的问题
  • PTA 6-1 在一个数组中实现两个堆栈 (20分)
  • PTA 7-1 哈夫曼编码 (30分)
  • 哈夫曼编码的最优子结构性质
  • PTA jmu-ds-舞伴问题 (20分)
  • 如何学习编程?如何学号C语言?编程学习网站汇总
  • PTA 银行排队问题之单窗口“夹塞”版(30分)
  • PTA 两个有序链表序列的合并
  • OJ 趣味程序设计_三色球问题
  • OJ 邻接表的相关操作
  • C语言基础排序算法(含动画演示) 插入排序、交换排序、冒泡排序、选择排序、归并排序、希尔排序、stl 排序、各种排序算法比较分析:
  • OJ 趣味程序设计_抢n游戏
  • OJ 趣味程序设计_打印日历
  • 10个最佳ES6特性 ES7与ES8的特性
  • Docker入门(二) - Dockerfile
  • go append函数以及写入
  • gops —— Go 程序诊断分析工具
  • JavaScript-Array类型
  • JavaScript新鲜事·第5期
  • Linux快速复制或删除大量小文件
  • nginx 负载服务器优化
  • React Native移动开发实战-3-实现页面间的数据传递
  • ReactNative开发常用的三方模块
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 简析gRPC client 连接管理
  • 爬虫模拟登陆 SegmentFault
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 消息队列系列二(IOT中消息队列的应用)
  • 优秀架构师必须掌握的架构思维
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 通过调用文摘列表API获取文摘
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (1)(1.13) SiK无线电高级配置(五)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (LeetCode) T14. Longest Common Prefix
  • (Note)C++中的继承方式
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)编辑寄语:因为爱心,所以美丽
  • .dwp和.webpart的区别
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Standard 的管理策略
  • .net中调用windows performance记录性能信息
  • .project文件
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @ResponseBody