Ubuntu16.04 + Faiss + Pytorch + CUDA8.0 + CUDNN 安装实录
前言
本文记录了本人在ubuntu16中借助anaconda3.0安装faiss-gpu以及pytorch环境的过程。由于一开始摸不清安装环境以及安装过程需要特别注意问题,导致耗费了两天的时间一直在不停的搜索相关的教程不断尝试,不断失败,不断尝试的过程。期间一度心态崩溃,所幸最终摸索到正确的安装方法。
感谢其他博主的无私分享!
一、注意事项
-
Faiss仅支持Linux和Mac系统,是不支持Windows的。请Windows的用户安装VMware虚拟机或者安装双系统解决系统环境问题。
在这里因为本人需要使用GPU,然而虚拟机中的环境是不支持安装N卡驱动的,所以本人使用的Win10+Ubuntu16双系统环境。
-
本人在安装CUDA时,遇到了ubuntu卡在登录页面,循环输入密码无法进入ubuntu系统桌面的情况。
一定要去官网下载显卡对应的驱动安装,请尽量不要使用ubuntu中的驱动或者CUDA中的驱动,经过我多次安装尝试,这两种方式都会导致循环登录的问题!!!!(也可能是因为BIOS的Secure Boot问题导致)
-
PyTorch的安装要依赖于CUDA的版本。请先确定需要安装的PyTorch版本和CUDA版本的对应关系。PyTorch的版本和CUDA版本的对应安装语句
-
由于每个机器的具体环境不一样,可能有些地方稍微不一样,大家注意应变。
二、安装流程
1.双系统安装
安装win10和ubuntu双系统参考的是这篇博客https://blog.youkuaiyun.com/bychen623/article/details/53543465,教程已经很详细。
需要注意的地方就是,该文中对ubuntu系统的各个区大小的设置要灵活,若划分给ubuntu的空间足够的话,尽量给主分区的空间划大一点。当时没有注意这个细节,傻瓜式照搬,没有考虑实际情况,导致了在安装CUDA时遇到了主分区空间满的问题,导致了任何文件都没法修改,也没法安装任何应用。只能重装ubuntu系统。
这里重装ubuntu需要将划分出去的分区重新合并以后在划分,参考这篇博客https://blog.youkuaiyun.com/Carina_Cao/article/details/90270389。
不过在重装双系统中的ubuntu时,我推荐使用U盘启动工具(try ubuntu without install)安装,这可以避免分区前有小锁的问题。在U盘启动中,可能交换分区存在小锁,这时在交换分区上右键,关闭交换分区,等待操作完成,再删除分区就行了。它会自动将相邻的未分配的分区进行合并。
保存分区操作以后,直接在U盘启动里,选择install ubuntu。给电脑重新安装双系统就可。这里不多赘述。
补充知识:
-
调整ubuntu16设置中文语言的home目录中文名称转换成英文目录方法:
终端(ctrl + alt + t )执行下面的命令,将系统语言换成英文
export LANG=en_US
xdg-user-dirs-gtk-update
这时系统会提示你更改目录的名称,选择更新名称(或者update的选项)。然后将系统语言换回来。在第一次重启时会提示,是否将英文目录名改成中文,这里一定选择保留旧文件名称,否则白操作了。
export LANG=zh_CN
xdg-user-dirs-gtk-update
-
更改双系统默认启动win系统。
重启电脑,进入启动选择页面,此时默认启动第一个ubuntu系统,记一下win系统在第几个。
sudo gedit /etc/default/grub
在我的电脑上,ubuntu在第一个,win10在第3个,所以设置GRUB_DEFAULT=2。
GRUB_TIMEOUT设置的是启动页面等待操作的时间。单位秒
然后执行,就可以了
sudo update-grub
2.NVIDIA驱动安装(这一步安装一定要注意)
注意1:安装NVIDIA需要在BIOS中关闭Secure Boot选项,否则可能导致登录界面无限循环。这里电脑型号各有不同,请自行百度相关的资料。
注意2:本人推荐去官网下载驱动安装,不推荐使用CUDA中自带的驱动,也不推荐使用ubuntu 软件和更新 的 附加驱动 的安装方式
声明:这里只是本人安装过程中遇到的问题和推荐的安装方式,可能有些人的电脑通过另外两种安装方式并没有遇到像我一样卡在循环登录上。具体情况具体分析
还需要注意的就是要NVIDIA的版本和CUDA的版本的对应关系要正确如下面博客中所示:
https://blog.youkuaiyun.com/mouse1598189/article/details/86695400
NVIDIA驱动下载和驱动安装重点参考了这两篇博客
https://blog.youkuaiyun.com/le_more/article/details/104082643
https://blog.youkuaiyun.com/qq_41493990/article/details/81474998
3.CUDA安装
这里也是重点参考和对照了两篇博客。安装过程中,NVIDIA驱动安装的过程已经安装好了,就可以跳过了。
https://blog.youkuaiyun.com/matt45m/article/details/90298040
https://blog.youkuaiyun.com/discoverer100/article/details/86984618
此处需要注意的地方就是 CUDA安装过程中提示 安装NVIDIA Accelerated Graphics Driver时,一定选No。否则也会导致循环卡在登录页面,无法进入桌面
若以上CUDA可以正确安装到电脑上,就成功了一大半了,最大的坎就迈过去了。
4.CUDNN的安装
这里没什么好说的,在第3步CUDA的安装教程中都已经提到了。这里贴一个CUDNN的下载连接:
https://developer.nvidia.com/rdp/cudnn-archive
5.Faiss 和 PyTorch 的安装
5.2和5.3中的操作都是在虚拟环境faiss37中操作的(在终端激活faiss37后执行)。
5.1 Anaconda 安装和虚拟环境创建
这里安装需要借助anaconda工具来安装。anaconda的安装教程如下:
https://blog.youkuaiyun.com/taotongning/article/details/81289078
此时可以创建anaconda的虚拟环境来执行接下来的安装过程。虚拟环境优点就不多说了。
这里本人创建了一个名叫faiss37的虚拟环境来安装faiss使用环境。(faiss37可替换其他名称)
conda create -n faiss37 python=3.7
等待安装结束之后使用命令,激活faiss37环境,继续安装其他依赖。
conda activate faiss37
若虚拟环境中依赖包安装出现问题,可以直接使用命令删除虚拟环境,重新创建一个虚拟环境即可。是否成功删除虚拟环境,可去anaconda安装路径 \Anaconda3\envs\ 下查看faiss37文件夹是否已经删除。
conda remove -n faiss37 --all
5.2 Faiss安装
注意: 经过本人实测,faiss的安装在python3.7环境下安装成功,可以正常使用。在python2.7环境中,虽然安装成功了,但是import就会报错,尝试了许多方式也并未解决。望知道解决办法的大佬,不吝赐教!感谢
若以上环境设置都没问题,则执行下面的faiss安装语句安装就很方便了。下面选则对应的安装就行
conda install faiss-cpu -c pytorch
conda install faiss-gpu -c pytorch # DEFAULT For CUDA8.0
conda install faiss-gpu cuda90 -c pytorch # For CUDA9.0
conda install faiss-gpu cuda91 -c pytorch # For CUDA9.1
本人执行的是:
conda install faiss-gpu cuda80 -c pytorch
5.3 PyTorch安装
PyTorch安装比较容易,只要版本和CUDA对应的上,去PyTorch官网找到相应版本的安装语句,利用anaconda安装很方便:
https://pytorch.org/get-started/previous-versions/
本人执行的语句就是和CUDA8.0相匹配的
conda install pytorch==1.0.0 torchvision==0.2.1 cuda80 -c pytorch
如果缺少依赖,anaconda会自动添加并安装,期间过程很顺利。
总结
以上内容就是我在配置自己电脑环境中遇到的额问题,参考的博客。在这期间遇到了许多问题。还是依靠强大的博友才能一点点解决,最终安装成功。自己记录一下,也希望这篇文章能够帮助到其他有需要的人。