ubuntu edge(什么是ubuntuedge)
一、Ubuntu16.04无法安装CUDA吗
Ubuntu 16.04安装 CUDA7.5
作者:autocyz
在介绍Ubuntu 16.04安装 CUDA7.5开始前,先辨析几个概念GPU、NVIDIA、NVIDIA驱动、CUDA、cudnn等,这些概念对于一个新手来说肯定是很晕的,正如我当初一样,所以我这里就稍微介绍一下这几个概念:
GPU:Graphics Processing Units,也就是我们常说的显卡。现在的笔记本或者台式机都会有显卡,但是能够让我们用来做并行计算的真正的GPU就只有NVIDIA出产的GPU了。
NVIDIA:GPU生产厂商,在运算GPU处于垄断地位。
NVIDIA驱动:就是NVIDIA生产的GPU想在电脑上正常使用所需的驱动。
CUDA:Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并-行计算架构,该架构使GPU能够解决复杂的计算问题。我们想使用GPU进行深度学习运算的时候,必须要用到这个运算平台。
cudnn:CuDNN是NVIDIA专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等.
Ubuntu 16.04安装cuda7.5
部分参照:
在安装之前,先说一下本人工作站的设备配置(主要是GPU的):
设备上一共有三块GPU,一快是专门用来做显示的NVS310
两块用来做运算的GeForce GTX TITIAN X
第一步:选择最新的nvidia驱动(很重要!!!)
先打开计算机中的“软件和更新”,查看“附加驱动”,选择nvidia的驱动为最新的驱动。更新完之后最好重启一下。
我曾经遇到一些错误,就是因为我的NVIDIA驱动太老了,而cuda7.5则依赖于比较新的驱动。
第二步:下载cuda
去官网下载,选择Linux——ubuntu——15.04(我安装的时候还只支持到15.04,没有支持16.04版本的)——runfile(local)
第三步:安装PPA软件管理包工具
什么是 PPA?
PPA,表示 Personal Package Archives,也就是个人软件包集。
有很多软件因为种种原因,不能进入官方的 Ubuntu软件仓库。为了方便 Ubuntu用户使用,launchpad.NET提供了 ppa,允许用户建立自己的软件仓库,自由的上传软件。PPA也被用来对一些打算进入 Ubuntu官方仓库的软件,或者某些软件的新版本进行测试。PPA上的软件极其丰富,如果 Ubuntu官方仓库中缺少您需要的某款软件,可以去 PPA上找找看。
我们安装的cuda可能在Ubuntu仓库中木有,所以用PPA来下载。
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
第四步:执行cuda的.run文件
cd到下载的.run文件夹执行:
sudo./cuda_7.5.18_linux.run--override
第五步:选择安装选项
选择安装选项:(注意:应为之前已经安装过NVIDIA Display Driver的驱动了(如第一步),所以这里选择不安装NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39。如果选择安装会出现错误,并且导致安装CUDA失败。
Do you accept the previously read EULA?(accept/decline/quit): accept
You are attempting to install on an unsupported configuration. Do you wish to continue?((y)es/(n)o) [ default is no ]: y
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39?((y)es/(n)o/(q)uit): n
Install the CUDA 7.5 Toolkit?((y)es/(n)o/(q)uit): y
Enter Toolkit Location [ default is/usr/local/cuda-7.5 ]:
Do you want to install a symbolic link at/usr/local/cuda?((y)es/(n)o/(q)uit): y
Install the CUDA 7.5 Samples?((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is/home/kinghorn ]:/usr/local/cuda-7.5
Installing the CUDA Toolkit in/usr/local/cuda-7.5...
Finished copying samples.
===========
= Summary=
===========
Driver: Not Selected
Toolkit: Installed in/usr/local/cuda-7.5
Samples: Installed in/usr/local/cuda-7.5
第六步:添加cuda到环境变量里面
sudo nano/etc/profile.d/cuda.sh
export PATH=$PATH:/usr/local/cuda/bin
sudo nano/etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
source/etc/ld.so.conf.d/cuda.confcd/usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo./deviceQuery
sudo ldconfig
第七步:将GCC降级或者采用暴力的方式让cuda7.5支持高版本GCC。
由于cuda7.5不支持gcc4.9以上的版本,而ubuntu16.04默认的是gcc5,这会造成安装的失败,解决方法有两种,
1、对gcc进行降级,让系统采用低版本的GCC,但是这种方式有一定的问题,因为Ubuntu16.04很多系统文件默认是使用gcc5编译的,因此如果用降级的方法安装完cuda后,在后期安装caffe的时候,可能会报类似于undefined的错误,这是因为你的gcc版本低,其所需的系统文件找不到。.
sudo apt-get install g++-4.9
sudo update-alternatives--install/usr/bin/gcc gcc/usr/bin/gcc-4.9 20
sudo update-alternatives--install/usr/bin/gcc gcc/usr/bin/gcc-5 10
sudo update-alternatives--install/usr/bin/g++ g++/usr/bin/g++-4.9 20
sudo update-alternatives--install/usr/bin/g++ g++/usr/bin/g++-5 10
sudo update-alternatives--install/usr/bin/cc cc/usr/bin/gcc 30
sudo update-alternatives--set cc/usr/bin/gcc
sudo update-alternatives--install/usr/bin/c++ c++/usr/bin/g++ 30
sudo update-alternatives--set c++/usr/bin/g++
2、这种方式有点类似于黑箱方式,即强制让他不报错。编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:
将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
上面就是设置gcc版本优先级的。20和10就代表你所使用的gcc、g++的版本优先级。
第八步:测试是否安装成功
执行如下指令,正常情况下会出现设备中所有的GPU,并把每个GPU的信息打印出来。
nvidia-smi
如果没有出现错误之类的话,就说明安装成功了。
第九步:测试cuda的Samples
cd/usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo./deviceQuery
如果显示的是一些关于GPU的信息,则说明安装成功了。
Ubuntu 14.04安装配置CUDA
Ubuntu 12.04配置NVIDIA CUDA5.5实录
Ubuntu安装Theano+CUDA
关于Ubuntu 12.04下 CUDA5.5的安装请参看如下链接 Ubuntu 12.04安装 CUDA-5.5
Caffe配置简明教程( Ubuntu 14.04/ CUDA 7.5/ cuDNN 5.1/ OpenCV 3.1)
在Ubuntu 14.04上配置CUDA+Caffe+cuDNN+Anaconda+DIGITS
Ubuntu16.04下CUDA8.0+Caffe安装配置过程
Ubuntu 14.04下CUDA8.0+ cuDNN v5+ Caffe安装配置
Ubuntu 16.04+Nvidia GTX 1080+CUDA8.0深度学习环境配置
更多Ubuntu相关信息见Ubuntu专题页面
二、谁能给我一个用Ubuntu的理由
我还不是程序员,只是个小白,所以也不讲程序员那套……或许会忍不住。
################
1、Ubuntu是linux发行版中操作最简单的(deepin?没用过,听说桌面环境很卡,系统优化也不是太好;linux mint?也没用过,只是因为我的Ubuntu配置好了不想尝试别的,应该还不错)。
2、Ubuntu是linux发行版具有一个linux发行版在小白眼中该有的特征:体积不大,安全,正版免费。
3、Ubuntu是linux发行版中桌面系统占有率最高的系统。
4、Ubuntu对小白而言,相关问题解决方案相对于其他linux发行版最容易找。
5、Ubuntu的开发公司目标就是全平台,所以桌面端的开发不会停滞,我们作为日常作业的非程序员,要的也就是桌面端的发展。
以上是为什么在linux发行版中挑Ubuntu的原因,接下来是在linux本身的角度说为什么选Ubuntu。
1、Ubuntu拥有终端,最简单来说,安装应用在某些角度很方便,比如大多时候一个命令差不多软件就装好了,自己编译应用时不算。(Windows下找起来方便?linux下不知道名字根本没法装?我信了,不过Windows也有问题,需要上网搜软件包,动不动还中毒,或者官方的再来点“全家桶”;360软件管家一类?Ubuntu上不是也有各种软件中心嘛?软件不全?Windows的软件管家就是全的?咳咳……)
2、接第一条,Ubuntu“安静”,不用担心各种软件中的广告弹窗(针对Windows糟糕的软件商素质说的),也不用担心软件暗中安装,因为需要密码,如果真的被装了附带软件,不需要的话可以卸载,不用担心顽固的反复安装。(如果出现我说的“附带软件”,可能是所安装软件需要依赖那玩意儿运行,不过绝算不上“暗装”,终端中肯定会显示出来的……)
3、Ubuntu相比Windows在同硬件配置下有更出色的运行效率和流畅的速度,卡了?unity桌面环境的锅,换个桌面环境,这也是Windows不可及的地方,至少对强迫症来说可以选个自己喜欢的桌面环境了。
4、……我想对一个小白而言,上面的“理由”已经够了,下面开始“自我撕逼”……
################
W:我有大量的软件你有吗?我的用户可都习惯了我手下运行的应用了!爱死中国用户了,虽然他们用的大多是盗版我很不爽,但他们开发了QQ、迅雷、360安全卫士之类的,帮我锁了好多忠实用户呢!
U:大量软件是有的,不过或许真的没赶上你,毕竟你的用户有些喜欢做小工具类的软件。你的专属应用我是没什么好说的,Adobe全家桶我服,不过我也有GIMP等等的软件可以实现相关功能,基本可以应付日常所需了,更高级的功能嘛……开源社区那么多开发者,迟早会有的。你刚刚说什么QQ、迅雷?应该用起来挺方便的,可我我真的没受这些软件亲睐,我有这么不赚钱吗?还好skype是全平台的,其他一些优秀的多协议即时通讯软件似乎在中国不受待见。等等……盗版?那是什么?
W:……好吧,咱不提盗版的事了,它让我的一些同胞变得和你一样免费,可是似乎没你名声好,想起来我还有点想哭……
U:额……好吧,刚刚说到软件问题,其实我有wine这个兼容层,运行一些国际化exe程序还是可以的,他的贵族兄弟crossover在这方面还要强,听说mac OS也有wine呢!如果实在不行的话……我可以提供虚拟机的……你爸爸不是提供了各种90天“无限试用”版的你吗?运行你的软件应该不在话下了吧?
W:……我的小弟Windows10不是也有个子系统吗?也可以运行一些linux平台下的软件嘛!你牛个啥!我看下他的子系统是啥,你别吓着啊……嗯……Ubuntu?!
U:啊?貌似是的。
W:让我平复一下心情……
U:听说你付费?
W:免费了不起啊?!
U:听说mac OS比你贵?
W:闭嘴!!
U:算了,你游戏支持比我好,不和你争了,拜拜!~
W:喂!别走啊,我又不是给游戏机用的!把话说清楚啊!!
################
嗯,就是这样,那个Windows虚拟机文件官方是提供了毫无阉割删了可重装继续激活的90天试用版的,不过只能给虚拟机用。
地址:
################
最后要说的:用不用Ubuntu完全是用户自己的事,只使用Ubuntu更是另一回事。
如果你要玩游戏,建议不要从Windows或者mac OS离开,Ubuntu上肯定没太多的厂商开发游戏,尤其是联网的重型游戏。
如果你是尝鲜就试试Ubuntu好了,玩腻了再换回去。
Ubuntu真的玩适应了你会觉得离不开它,至少我已经将它作为日常操作系统了,不过或许出于我个人讨厌Windows上软件环境的“乱”和界面的“丑”。
如果你要用Ubuntu请用原版,中国的kilin版现在真的很不靠谱,还不如原版的支持好,顶多让人觉得它是个有点像Windows的不伦不类的玩意儿,但说句老实话,你想要个长得像Windows的系统干嘛不干脆还用Windows呢?(付费?我当作没听到好了……)
三、ubuntu上G2O库的安装
一、什么是G2O库?有什么用?
g2o是一个图优化库。常常在SLAM中被使用。
图优化本质上仍然是非线性优化。只不过利用图的方式表现出来,使问题可视化,然后可以根据可视化的结果来更好的调整优化过程。
图 是一种数据结构。在图优化中,用顶点 (vertex)表示优化变量,用边 (edge)表示误差项。于是,对于任意一个上述形式的非线性最小二乘问题,都可以构建一个与之对应的图。
在视觉SLAM十四讲中,常用的后端优化库有两个:g2o和ceres。ceres是google的一个优化库,文档详尽且友好,就不再赘述了。但对于g2o,除了源码,官方用doxygen生成的帮助文档,就只有论文 g2o: A general framework for graph optimization 和这篇github的文档。
二、如何安装G2O库?有哪些依赖项?在安装和使用的过程中,会遇到哪些问题,以及如何解决?
1安装步骤
git clone
cd g2o
mkdir build
cd build
cmake…/
make
sudo make install
2在编译时,我卡在opengl的库安装问题上。
glut库安装:
sudo apt-get install freeglut3-dev
总是提示
Err:1 bionic/universe amd64 freeglut3 amd64 2.8.1-3
connetciton failed [IP:91.189.91.39 80]
Err:2 bionic/universe amd64 freeglut3-dev amd64 2.8.1-3
connetciton failed [IP:91.189.91.39 80]
E:Failed to fetch connection failed [IP:91.189.91.39 80]
E:Failed to fetch connection failed [IP:91.189.91.39 80]
E:Unable to fetch some archives, maybe run apt-get install libglut-dev
最终解决方案, 更换 sources.list阿里源清华镜像。
apt-get update
apt-get upgrade
3在使用g2o时,编译用到了g2o库的project,遇到报错error:‘index_sequence’ is not a member of'std'
解决方案,修改project的CMakeLists.txt添加:set(CMAKE_CXX_STANDARD 14)
参考链接:
Ubuntu18.04更换 sources.list阿里源清华镜像–小固件(atmcu.com)
(81条消息)视觉SLAM十四讲报错 error:‘index_sequence’ is not a member of‘std‘_CSSDCC的博客-CSDN博客
(81条消息)视觉SLAM十四讲报错 error:‘index_sequence’ is not a member of‘std‘_CSSDCC的博客-CSDN博客