艰辛五天:Ubuntu14.04+显卡驱动+cuda+Theano环境安装过程
题记:从一开始不知道显卡就是GPU(虽然是学计算机的,但是我真的不知道…脑残如我也是醉了),到搞好所有这些环境前后弄了5天时间,前面的买显卡、装显卡和装双系统见另一篇博客装显卡、双系统,这篇主要记录我怎么配置后面的环境,虽然中间重装Ubuntu三次,后面安装过程也没差别。
基础平台:64-bit,Ubuntu14.04
1.安装NVIDIA驱动(参考技术文章,基本是复制啊,蟹蟹作者~)
(1) 在官网下载NVIDIA驱动,根据自己买的型号选择下载,放到 /home/lvxia/ 目录下面,我下载的是NVIDIA-Linux-x86_64-367.27.run.
(2) 屏蔽开源驱动 nouveau(原文章说“可以不编辑blacklist.conf,NVIDIA.run驱动程序可以自己停止其他开源驱动,但是需要重启”)
sudo gedit /etc/modprobe.d/blacklist.conf
添加以下内容保存
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
(这里有一行空格)
(3) 删除旧NVIDIA驱动
sudo apt-get --purge remove nvidia-*(需要清除干净)
sudo apt-get --purge remove xserver-xorg-video-nouveau
(4) 重启电脑。
(5) 按Ctrl + Alt +F1(F1~F6均可)到x-server, Ctrl+Alt+F7是返回
(6) 关闭图形环境,否则驱动无法正常安装
输入用户名密码登录,然后键入命令后执行(数字不能用小键盘输入)
sudo service lightdm stop
成功关闭服务后将出现:lightdm stop/waiting
(7) 进入驱动所在的文件夹,这里就是/home/lvxia,执行
sudo sh NVIDIA*.run
原文章链接里的 sudo sh NVIDIA.run 执行失败,键入用户密码。后面就一路Accept就可以~报错The distribution-provided pre-install script failed!不必理会,继续安装。最重要的一步,安装程序问你是否使用nv的xconfig文件,这里一点要选yes,否则在启动x-window时不会使用nv驱动。
至此,安装成功~
(8) 重启 X-window 服务
sudo service lightdm start
查看显卡是否装好,运行
glxinfo | grep rendering
假如显示"direct rendering: Yes",则已安装。
原技术文章写了另一PPA源方法,我没有测验过,就不贴了~~
2.安装Theano、cuda支持
这里看了很多不错的技术博客,但是因为没有一个是完全适合我的情况的,也入了不少坑,所以我自己也记录一个吧~
(1) Ubuntu-安装-theano+caffe-超详细教程
蟹蟹作者们~~
2.1 安装Theano
(1) 预先安装工具
sudo apt-get install -y python-dev python-pip python-nose gcc g++ git gfortran
(2) 安装BLAS, LAPACK, ATLAS
sudo apt-get install -y libopenblas-dev liblapack-dev libatlas-base-dev
(3) 安装NumPy
后面安装的每一步测试为 0 errors,才能进行下一步~~时间都挺长的啊~
sudo pip install numpy
#进行测试。
python -c 'import numpy; numpy.test()'
也可以命令python进入—>import numpy—>numpy.test()。
(4) 安装scipy
sudo pip install scipy
python -c 'import scipy; scipy.test()'
(5) 安装Theano
sudo pip install Theano
sudo python -c 'import theano; theano.test()'
这个测试的时候遇到 ImportError:No module named nose-parameterized 错误,后来执行:
pip install nose_parameterized
再次测试就木有问题啦,等了好久~以上操作我都是参考博客2的,然后后面我按照他的操作装cuda时,install libgl1-mesa-glx的时候出现依赖包问题解决不了,报以下错误:
The following packages have unmet dependencies:
unity-control-center: Depends:libcheese-gtk23(>=3.4.0) but it is not going to be installed
Depends:libcheese7(>=3.0.1) but it is not going to be installed
令人抓狂的错误提示,后面搞这个搞了一两天,最后还是没有正面解决这个问题,不更新/更新系统补丁、不换/换软件源都不行,明明已经安装了依赖的包,但是却总提示包不被安装,最后通过另一篇博客里介绍的方法安装cuda了。。
2.2 安装Cuda(参考博客3)
(1) 验证电脑是否有显卡支持
lspci | grep -i nvidia
我买的是GTX 960,穷人版本…
(2) 查看Linux的版本
uname -m && cat /etc/*release
(3) 查看gcc版本
gcc --version
(4) 下载nvidia cuda的仓库安装包nvidia-cuda,找到自己电脑对应系统对应版本。
注意选择的是deb(network).
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.5-18_amd64.deb
直接下载到主目录下了~~
(5) 安装cuda软件包
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
(6) 更新本地仓库
sudo apt-get update
(7) 安装cuda啦
sudo apt-get install cuda
原来的技术博客里说Ubuntu系统安装好后不要更新系统补丁,原因见 博客3.
(8) 测试
echo 'export PATH=/usr/local/cuda-7.5/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
这里最好重启一下电脑,因为我按照操作后测试deviceQuery时一开始是不对的,重启电脑后就好了~
2.3 验证
(1) 查看NVCC编译器的版本
nvcc -V i
(2) 查看显卡的驱动版本
cat /proc/driver/nvidia/version
(3) 安装cuda的示例代码
cuda-install-samples-7.5.sh /home/lvxia/cuda
(4) 编译代码
cd cuda/NVIDIA_CUDA-7.5_Samples/
make
(5) 运行代码
cd bin/x86_64/linux/release/
sudo ./deviceQuery
sudo ./bandwidthTest
最后一行 result=pass表示通过~
3. 验证环境
(1) 新建test.py,复制如下内容保存,(主目录/home/lvxia下)
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000 rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in xrange(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
(2)新建 .theanorc 设置GPU代替CPU运算(主目录)
可以使用 gedit 打开,因为 vi 不太会操作。。复制如下内容到文件中保存。这个文件在home目录下看不到,可以通过命令 ls –all 看到的~
[global]
floatX=float32
device=gpu
(3) 运行test.py
python test.py
最后一行显示 used the gpu 就对啦~
然后有句提示CNMEM is disabled, cuDNN not available, 资料说CNMEM可以不用管,Theano支持cuDNN(可选),但是Tensorflow必须要cuDNN,所以就装cuDNN了。
(4) 安装cuDNN
cuDNN是专门针对deep learning框架设计的一套GPU计算加速方案,首先需要注册一下,然后才能下载cuDNN。
进入Downloads目录
tar xvzf cudnn-7.5-linux-x64-v5.0-ga.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cd -a cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
有个技术博客里说的问题我这里没遇到。
再运行test.py,提示 CNMEM is disabled, cuDNN 5005对啦~!
后面发现了一些不错的博客,没有测试,贴在这后面看看 使用GPU和Theano加速深度学习、Theano、Lasagne、TensorFlow在Ubuntu支持GPU的安装
end,happy~
艰辛五天:Ubuntu14.04+显卡驱动+cuda+Theano环境安装过程的更多相关文章
- ubuntu14.04显卡驱动问题(amd5600k集显7650d)
安装ubuntu的时候,多次莫名其妙地黑屏,起初以为是最新得ubuntu14.04安装包不稳定,所以一直尝试了很多次. 重启-->安装-->黑屏(硬盘仍在转动,屏幕上什么都没有)--> ...
- Ubuntu18.04 显卡驱动+Cuda安装踩坑记录 以及Ubuntu虚拟内存的添加
前几天买了张亮机卡,终于把主显卡成功直连到Unraid OS的虚拟机上了.然后就开始安装ubuntu系统开始配置环境,遇到了不少坑,特此记录. gcc版本问题 在安装显卡驱动的时候,不要修改gcc版本 ...
- ubuntu14.04下nodejs + npm + bower的安装、调试和部署
1. 简介 本文介绍ubuntu14.04下nodejs+npm+bower的安装.调试和部署 参考文档 https://docs.npmjs.com/getting-started https: ...
- Ubuntu14.04(nginx+php+mysql+vsftp)配置安装流程
Ubuntu14.04(nginx+php+mysql+vsftp)配置安装流程 1.先切换到root用户 sudo su 2.更新软件源 apt update apt-get upgrade 3. ...
- Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)【转】
本文转载自:https://blog.csdn.net/Zafir_410/article/details/73188228 前言 前面好一阵子忙于写论文和改论文,好久没有做新实验了,最近又回到做实验 ...
- ubuntu18.40 rtx2080ti安装显卡驱动/cuda/cudnn/tensorflow-gpu
电脑环境 ubuntu 18.40 gpu rtx2080ti 一.安装显卡驱动 刚开始尝试用手动安装方式安装驱动 下载了驱动程序但是因为没有gcc所以放弃这种方法 后尝试最简单的方式 在 菜单-- ...
- Ubuntu 下安装Anaconda + 显卡驱动 + CUDA + CUDNN + 离线安装环境
写来给自己备忘,并不是什么教程- .- 下载安装包 Anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 显卡驱动:https ...
- Ubuntu18.04 显卡驱动安装(解决各种疑难杂症)
步骤 下载驱动 准备工作 进行安装 检查安装 下载驱动 首先我们需要去官网下载显卡驱动 打开浏览器,在百度搜索框中搜索:显卡驱动 下载 在手动搜索驱动程序一栏,根据自己的显卡进行选择 产品系列中,No ...
- Thinkpad Edge E440 Ubuntu14.04 无线网卡驱动 解决
http://ubuntuforums.org/showthread.php?t=2190347 正文: Thinkpad Edge E440 安装 Ubuntu12.04 后 无法使用无线网卡, 须 ...
随机推荐
- Maven pom项目部署
maven控制台运行程序 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec- ...
- Python学习之旅--第二周--python基础
一.什么是pyc? 1.Python是解释性语言,那么.pyc是什么文件? 2.解释性语言和编译型语言区别: 计算机是不能够识别高级语言的,所以当我们运行一个高级别语言程序时,就需要一个&quo ...
- Android WebView中显示一张或多张图片
最近需要在平板中显示多张图片,调查了下,决定用WebView(说实话,我还不清楚有没有其他android控件能够显示多张图片的.....), 主要是用HTML的img来显示多张图片. google百度 ...
- jQuery 3D canvas 旋转木马(跑马灯)效果插件 - cloud carousel
插件名称-cloud carousel 最新版本-1.0.5 支持ie6-ie9,firefox,chrome,opera,safari等 1.引入jquery1.4.2.js 和CloudCarou ...
- IP地址接口小结
1 百度http://api.map.baidu.com/location/ip?ak=F454f8a5efe5e577997931cc01de3974&ip=58.67.143.169 {& ...
- Webpack学习笔记(一)
转载http://zhaoda.net/webpack-handbook/module-system.html 转载http://www.cnblogs.com/vajoy/p/4650467.htm ...
- CentOS6.3添加nginx系统服务详细说明
今天虚拟机上配了下服务器整理了个这个 nginx 服务 要注意 - 短横杠这个符号看看复制进去后有没有乱码,我之前就遇到这个问题,郁闷了好久才发现 提示:顶部的注释不要去除否则无法注册为系统服务, 关 ...
- js--冒泡排序[由小到大]
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- HDU 2212 DFS
Problem Description A DFS(digital factorial sum) number is found by summing the factorial of every d ...
- Effective JavaScript :第四章
1.理解:prototype.getPrototypeOf和_proto_之间的不同 ①C.prototype用于建立new C()创建的对象的原型. ②Object.getPrototypeOf(o ...