|
Abstract:
这篇文档是描述如何在Google Cloud上建立 VM instance,并安装与我所做项目匹配的软件,通俗的说就是我在Google Cloud上得到了一台电脑,然后我在这台电脑上安装了一系列我需要的软件。听起来挺简单,但安装过程着实费力,对于一个很少使用命令行、Linux操作系统,经常使用图形化界面、点点鼠标的人来说还是非常困难。
配置:
#### 在搭建VM instance时,我选择的:GPU是NVIDIA Tesla K80,操作系统是Ubuntu16.04。
#### 因为我是为了跑Faster Rcnn,之前一次搭建系统时对cuda,Pytoch都没怎么注意,所以后期跑的时候暴各种错,在网上查阅后发现这套代码需要在cuda9.0+Pytorch0.4.0下才能顺利运行。
一、搭建VM instance
这个我会在写如何连接Google Cloud,并搭建VM instance中详细介绍,需要注意的是,我选择的是Ubuntu 16.04和k80。
二、安装gcc和g++
在Google Cloud中搭建的这台电脑是比较原始的,很多东西都是没有安装的,所以需要手动安装。因为后来在安装驱动时,暴了与没有安装gcc和g++相关的错,所以重新安装,也就是安装成功的这一次,我先把gcc和g++安装好了。
主要采用以下命令:
sudo apt-get install build-essential
(对于这条命令的解释:Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。如果单独安装gcc以及g++比较麻烦,幸运的是,为了能够编译Ubuntu的内核,Ubuntu提供了一个build-essential软件包。 来源:https://www.aliyun.com/jiaocheng/212052.html)
https://www.youtube.com/watch?v=cotkJrewAz0(我是参照这个视频安装gcc,g++,视频最后说直接可以用上述命令安装)
三、安装Nvidia驱动
注:一定根据自己的GPU型号去官网下载相应的驱动。
Nvidia驱动下载:https://www.nvidia.cn/Download/index.aspx?lang=cn(注意:要选择自己需要的cuda版本,所以要提前了解)

#### 首先,要将和显卡结合不是那么紧密的草根版驱动nouveau,这样启动以后就不会默认使用草根驱动。使用的命令如下:
cd /etc/modprobe.d/
# 然后在modprobe.d文件夹下创建blacklist-nouveau.conf
touch blacklist-nouveau.conf
vim blacklist-nouveau.conf
#在blacklist-nouveau.conf 中加入黑名单
blacklist nouveau
options nouveau modeset=0
# 更新的blacklist
update initramfs -u命令得到
# 重启系统,强力保证blacklist生效
sudo reboot
# 查看是否vouveau真的被禁止掉了,如果没有任何内容出现,那么草根驱动被禁止掉了
lsmod | grep nouveau
####将草根版驱动加入黑名单后,把之前下载好的nvidia驱动程序上传至Google Cloud,利用如下命令安装驱动程序:
bash NVIDIA-Linux-x86_64-384.145.run --no-opengl-files (注意:1、是在安放驱动程序的文件夹里执行此命令;2、这里的-和字母之间没有空格)https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh
(注:安装Nvidia驱动我是参照:https://blog.csdn.net/univeryinli/article/details/84590772中的第一步)
四、安装源管理软件包Anaconda
#### 利用wget命令:wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh
#### 然后利用: bash Anaconda3-5.2.0-Linux-x86_64.sh
#### 对于之后的提示是否接受许可文件,是否同意添加环境变量,都是yes
#### 最后通过 source ~/.bashrc,然更新生效
(注:对于用户环境变量、系统环境变量等环境变量还不是很懂,所以这里只是参照 https://blog.csdn.net/qq_30683995/article/details/82619859安装并激活了Anaconda)
五、安装cuda9.0
#### 去https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal官网上下载cuda9.0,下载的是1.6G.run文件,然后上传至Google Cloud.
#### 利用如下命令安装: sudo cuda_9.0.176_384.81_linux.run (注:是在自己上传的文件的位置安装)
#### 然后添加环境变量,这步很重要:vim ~/.bashrc
把下面命令添加至.bashrc最后:
#export CUDA_HOME=/usr/local/cuda
#export PATH=$PATH:$CUDA_HOME/bin
#export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#### 测试是否安装成功:nvcc -V

(注:我是参照http://www.twistedwg.com/2018/06/15/cuda9_cudnn7.html中的安装cuda9.0,所以之后的cudnn版本我也是和它一样的)
六、安装cudnn 7.0.5
#### 注册一个账号,去官网上下载cudnn7.0.5:https://developer.nvidia.com/rdp/cudnn-archive,然后将程序上传至Google Cloud

(注:选择的是:cuDNN v7.0.5Library for Linux)
#### 上传完直接解压,解压会出现一个cuda文件夹,里面有两个文件include 和 lib64,把里面的文件copy到/usr/local/cuda/里面相应的目录里。
(cudnn-9.0-linux-x64-v7.solitairetheme8,是对这个文件利用:
# cp cudnn-9.0-linux-x64-v7.solitairetheme8 cudnn-9.0-linux-x64-v7.tgz
# tar -xvf cudnn-8.0-linux-x64-v5.1.tgz)
#### 给文件添加读权限
# sudo chmod a+x /usr/local/cuda/include/cudnn.h
# sudo chmod a+x /usr/local/cuda/lib64/libcudnn*
####
# cd /usr/local/cuda/lib64/
# sudo chmod +r libcudnn.so.7.0.5 # 自己查看.so的版本
# sudo ln -sf libcudnn.so.7.0.5. libcudnn.so.7
# sudo ln -sf libcudnn.so.7 libcudnn.so
# sudo ldconfig
#### 查看是否安装好
# cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
(注:以上安装cudnn7.0.5我是完全安照:http://www.twistedwg.com/2018/06/15/cuda9_cudnn7.html来的)
七、安装pytorch0.4.0
注意安装的是pytorch0.4.0版本,而不是最新版。 |