远程服务器配置深度学习环境——多版本Tensorflow

背景

学习深度学习论文的代码时,用到的框架版本不同(如tensorflow 1.0和2.0有天壤之别),导致不兼容。如果不断切换版本,不但麻烦还有可能出现各种问题。因此考虑创建多个环境,每个环境部署不同的框架。由于不同框架所需的CUDA和CUDNN版本不尽相同,所以还需安装多个版本的CUDA及CUDNN,并能自由切换。

CUDA

简介

NVIDIA® CUDA® 工具包提供了开发环境,可供创建经 GPU 加速的高性能应用。借助 CUDA 工具包,您可以在经 GPU 加速的嵌入式系统、台式工作站、企业数据中心、基于云的平台和 HPC 超级计算机中开发、优化和部署应用。此工具包中包含多个 GPU 加速库、多种调试和优化工具、一个 C/C++ 编译器以及一个用于在主要架构(包括 x86、Arm 和 POWER)上构建和部署应用的运行时库。

借助多 GPU 配置中用于分布式计算的多项内置功能,科学家和研究人员能够开发出可从单个 GPU 工作站扩展到配置数千个 GPU 的云端设施的应用。

下载

下载地址
推荐使用 runfile,因为使用.deb可能会将已经安装的较新的显卡驱动替换。e.g.,cuda_9.0.176_384.81_linux.run。

安装(9.0为例)

  • 进入到放置 cuda_9.0.176_384.81_linux.run 的目录:
  • 为 cuda_9.0.176_384.81_linux.run 添加可执行权限

sudo chmod +x cuda_9.0.176_384.81_linux.run

  • 安装 cuda_9.0.176_384.81_linux.run

./cuda_9.0.176_384.81_linux.run

  • 截取安装过程中几个比较重要的选项:
    • 先按q退出说明

    • Do you accept the previously read EULA?
      accept/decline/quit: accept

    • Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
      (y)es/(n)o/(q)uit: n # 如果在这之前已经安装好更高版本的显卡驱动就不需要再重复安装,如果需要重复安装就选择 yes,此外还需要关闭图形界面。

    • Install the CUDA 9.0 Toolkit?
      (y)es/(n)o/(q)uit: y

    • Enter Toolkit Location

    • [ default is /usr/local/cuda-9.0 ]: # 一般选择默认即可,也可以选择安装在其他目录,在需要用的时候指向该目录或者使用软连接 link 到 /usr/local/cuda。

    • /usr/local/cuda-9.0 is not writable. Do you wish to run the installation with 'sudo'?
      (y)es/(n)o: y

    • Please enter your password:

    • Do you want to install a symbolic link at /usr/local/cuda? # 是否将安装目录通过软连接的方式 link 到 /usr/local/cuda,yes or no 都可以,取决于你是否使用 /usr/local/cuda 为默认的 cuda 目录。
      (y)es/(n)o/(q)uit: n

    • Install the CUDA 9.0 Samples?
      (y)es/(n)o/(q)uit: n


安装时可能会遇到的问题

unsupported compiler x.x.x Use --override to override this check

可以使用以下命令解决

./cuda_9.0.176_384.81_linux.run --override

安装完成后得到以下信息:

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.0
Samples: Not Selected
Please make sure that
- PATH includes /usr/local/cuda-9.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver

安装完成之后在/usr/local/ 中可以找到以下文件:

cuda-9.0 # 刚刚安装的cuda-9.0
cuda-11.2 # 之前安装的cuda-11.2
cuda # cuda-9.0 的软连接

配置Cuda环境

打开.bashrc文件

vi ~/.bashrc

或者

vim ~/.bashrc

.bashrc 是什么?
.bashrc是home目录下的一个shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。

在~/.bashrc文件末尾添加:

#在文件结尾处添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

export PATH=$PATH:/usr/local/cuda/bin

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

退出编辑
在文件结尾处添加:

:wq

多个cuda版本切换

目录查看安装了哪些版本

cd /usr/local

使用stat查看cuda文件夹链接的是哪个版本的cuda

stat cuda

切换方法:

  • 删除当前软链接
  • 新建cuda-x.x和cuda的软链接即可

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda


切换时可能会遇到的问题
在配置的时候,一步步按照之前的方法配置,但是无论怎样修改软链接都无法改变使用的cuda版本。并发现使用

cat /usr/local/cuda/version.txt

得到版本为想要的结果,使用nvcc -V版本没有变化。
解决方案——
修改 /etc/profile 文件

sudo vim /etc/profile
在末尾加上

export PATH=/usr/local/cuda/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH

export CUDA_HOME=/usr/local/cuda

刷新

source /etc/profile

CUDNN

简介

NVIDIA CUDA® 深度神经网络库 (cuDNN) 是经 GPU 加速的深度神经网络基元库。cuDNN 可大幅优化标准例程(例如用于前向传播和反向传播的卷积层、池化层、归一化层和激活层)的实施。

世界各地的深度学习研究人员和框架开发者都依赖 cuDNN 实现高性能 GPU 加速。借助 cuDNN,研究人员和开发者可以专注于训练神经网络及开发软件应用,而不必花时间进行低层级的 GPU 性能调整。cuDNN 可加速广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PyTorch 和 TensorFlow。

下载

下载地址

安装

  • 解压

sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include

得到一个文件夹 cuda/

  • 复制lib64下的内容

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64

  • 复制include下的内容

sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include

  • 重置读写权限

sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*

anaconda环境搭建

常用命令

查看anaconda版本

conda --version

查看安装的环境列表

conda env list

查看安装的第三方库

conda list

删除指定的环境

conda env remove -n 环境名

创建环境

conda create -n 环境名 python=版本号

进入环境

conda activate 环境名

退出环境

conda deactivate

查看系统信息

uname -a

注意事项

  • 在使用conda创建环境之前,一定不要使用源(清华源或者其他源)!!!创建使用官方源就行了!!!使用清华院或者其他源安装会报错。
  • 指定地址安装anaconda
    一般默认的地址都是在home下面,如果要指定安装,命令:

指定path/anaconda3

注意:在指定的目录里面一定不要提前有anaconda3的目录!!!这样会报错说目录已存在。

安装tensorflow

pip命令安装

通过pip工具对tensorflow-gpu进行安装
(指定临时镜像源对指定版本的tensorflow进行安装)
以tensorflow-gpu==1.12.0版本为例:

pip install tensorflow-gpu==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

本地下载安装

官网

验证

python
import tensorflow as tf
tf.___ version ___

注意事项

tensorflow版本一定要与CUDA版本以及CUDNN版本对应!!!

posted @ 2022-05-14 18:51  岸南  阅读(83)  评论(0)    收藏  举报