FunnyWeb

据说这里有很多神奇的东西...

在Ubuntu14.04下挣扎着安装CUDA

2017-04-28 23:40:3310993 views

过节放假啦,小伙伴们纷纷发起了狗粮,今天再玩一下我也要回家~

依然用着多年前的小霸王笔记本。

显卡是凄凉的GT630M,准备强行上一波CUDA,Tensorflow走起。

经历了一次彻底崩溃之后,再次安装终于成功。

附加一份CUDA7.5的官方文档,非常的科学

http://developer.download.nvidia.com/compute/cuda/7.5/Prod/docs/sidebar/CUDA_Installation_Guide_Linux.pdf

首先安装ubuntu14.04

清理出一个空白的磁盘分区,推荐30G。(仿佛下一步wubi安装时仿佛最多支持30G?)

使用了方便快捷的wubi安装器(下载的镜像自带),在win8下可以直接安装。

打开wubi,设置盘符、安装大小、用户名、密码,安装即可,几十秒钟就能初始化完成,重启计算机。

重启时一定记得在windows的logo之后选择系统,选择ubuntu。

然后提示回环设备什么的,选择继续,开始自动安装。

之后会再次重启系统,如果直接进入ubuntu系统,可能(几乎一定会)出现“为/检查磁盘时出现严重错误”

因此在ubuntu启动选择时


光标选中 *Ubuntu 后,按键盘上的 e 键

1493390303105678.jpg

然后使用光标定位到如图所示位置,将 ro 改成 rw 后,按 F10 键,即可按照修改后的参数引导进入系统。

进入系统后ctrl+alt+T打开终端,运行

sudo gedit /etc/grub.d/10_lupin

做同样的修改

同样位置(应该是在第150行)的 ro 修改为 rw ,然后保存并退出文本编辑器,然后执行

sudo update-grub

以后就不会出现错误了

我用的ubuntu14.04有两个小问题,顺便附以下解决方案:

  1. 文字选中就会删除

    命令行输入

    ibus-setup

    取消选中“在应用窗口中启用内嵌编辑模式”

    成功解决

  2. 输入法默认双拼

    点击右上角的输入法首选项

    image.png

    去掉简拼选项

    image.png

    命令行输入

    ibus-daemon -drx

    成功解决

正式进入CUDA:

首先,apt-get的方法有毒,反正实测安装未遂,而且卸载也没用,无法进入桌面,只能重装了系统。

下面介绍稳健的runfile安装:

确定自己的GPU支持CUDA、系统架构、内核版本什么的就不用多说了。

下载最新的CUDA安装包(仿佛官方不提供旧版的),地址:

https://developer.nvidia.com/cuda-downloads

选择系统(Linux)、架构(x86_64)、发行类型(ubuntu)、版本(14.04)、安装方式(runfile(local)),点击下载。

据说下载后一定要放在中文路径下。

  1. 禁用nouveau

    打开终端,输入

    lsmod | grep nouveau

    如果有输出,即需要禁用nouveau

    简单粗暴的直接改名字吧

    cd /lib/modules/

    ls

    此时应该只显示一个文件夹,替换下面的红色名称即可

  2. sudo mv /lib/modules/3.19.0-25-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/3.19.0-25-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org
    sudo update-initramfs -u
  3. 执行CUDA安装

    重启电脑,到达登录界面时,ctrl+alt+f1,进入text mode,登录账户,执行

    lsmod | grep nouveau

    如果无输出,证明第一步成功,继续下一步。(如果还有输出的话就请继续百度自求多福吧)

    关闭图形界面服务

    sudo service lightdm stop

    切换到下载的安装文件目录,运行安装

    cd ~

    sudo sh cuda_8.0.61_375.26_linux.run

    开头是蛋疼的用户协议,居然需要一路回车到底(应该有更科学的方式才对啊),然后accept。

    下面的选项大多数选择默认,除了

    遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以yes)

    然后等待安装成功...

    安装成功后,会显示installed,否则会显示failed。

  4. 设置Device Node Verification

    输入 sudo service lightdm start 重新启动图形化界面。

    输入密码登录,如果能登录,基本说明安装成功。

    检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)

    如果(基本上都)没有,运行以下脚本生成

  5. #!/bin/bash
    /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

    保存为nvidia.sh

    sudo sh nvidia.sh

  6. 设置环境变量

    终端中输入

    sudo gedit /etc/profile

    在打开的文件末尾,添加以下两行:(记得改成自己安装的CUDA版本)

  7. export CUDA_HOME=/usr/local/cuda8.0
    export PATH=/usr/local/cuda-8.0/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64
  8. 检查安装结果

    重启电脑

    首先安装一下最新的g++

    sudo apt-get update

    sudo apt-get install g++

    进入官方例子存放的路径

    cd ~/NVIDIA_CUDA-8.0_Samples

    make

    等待编译成功

    cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release/

    体验一下CUDA吧~

    ./deviceQuery

    image.png

    ./bandwidthTest

    image.png

    瞬间感觉人生圆满了...