signed

QiShunwang

“诚信为本、客户至上”

新服务器CPU/GPU python开发环境装机记录

2020/8/20 13:10:43   来源:

服务器装机

原因

新申请了几台服务器,有GPU机器以及CPU机器,需要给配置下运行环境。对于GPU与CPU而言,大致流程差不多,只是GPU会麻烦一些,需要安装NVIDIA相关的驱动及加速包等。不过有了docker后,可以将能运行好的项目用docker打包后,直接在新机器上部署就能跑动了,但这比较适用于服务端部署时候使用,如果是个人开发,还是建议单独配置下环境较好。

分配到服务器后,大致需要安装及配置以下几项内容:

  • 联系运维开通个人账户,及机器访问外网权限及端口权限;
  • rz/sz: SecureCRT上传与保存文件命令;
  • Anaconda:便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本;
  • git: 版本控制;
  • docker: 开源的应用容器引擎;
  • CUDA: NVIDIA推出的运算平台;
  • CUDNN: 用于深度神经网络的GPU加速库;

1. 申请权限

对于有的公司而言,可能个人对机器拥有所有的权限,这一步就无需进行了。但有的公司对于权限管理比较严格,干啥都需要发邮件申请权限,需要向运维组或者平台组申请相应的权限,主要有:

  • sudo权限;

  • 外网访问权限、端口权限;

  • 公司git项目访问权限;

  • … …

2. sz/rz安装

  • sz是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件;
  • rz是相对应的从本地上传文件到Linux服务器;

安装也比较简单,终端输入对应系统的命令即可,安装lrzsz

apt-get install lrzsz

yum install lrzsz

使用方法

rz filename  # 上传文件
sz filename  # 下载文件

注意: rz上传文件时,当有相同名的文件存在时候,无法覆盖,操作被忽略;

相关的命令操作可以参考:

  • https://blog.csdn.net/linjpg/article/details/78331701

3. Anaconda 安装

Anaconda是一个便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本的管理器,官网介绍:https://www.anaconda.com/products/individual,这个软件对于需要多种环境及多人共用同一台机器时候非常方便。能够创建多个虚拟环境以满足不同的项目环境需求,避免不同项目所需依赖包的版本不同而导致冲突。

其安装也非常的简单,下载好对应的安装文件后

bash ./Anaconda3-5.2.0-Linux-x86_64.sh

相应的安装步骤网上已经有很多的介绍,这里可以参考以下两个安装教程

  • https://zhuanlan.zhihu.com/p/32925500

  • https://blog.csdn.net/ITLearnHall/article/details/81708148

注意的地方:

  • 更换conda镜像源:

    原始的conda源在conda install软件时候比较慢,可以更换为国内的镜像源来实现加速。常用的镜像源有阿里、中科大、清华等

    # 清华
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    # 中科大的源
    conda config –-add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ 
    # 阿里云的源
    conda config --add channels http://mirrors.aliyun.com/pypi/simple/
    
  • 更换pip镜像源:

原始的pip源在pip install软件时候比较慢,可以更换为国内的镜像源来实现加速。常用的镜像源有阿里、中科大、豆瓣等

# 命令法
pip install numpy -i https://pypi.douban.com/simple/

# 创建文件永久法
修改 `~/.pip/pip.conf`并设置内容如下
[global]
index-url = https://pypi.douban.com/simple/

4. Git安装

git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。这个工具在自己开发项目中,或者是写作开发项目时非常有用,控制版本迭代,而不会因为覆盖让代码丢失。

安装非常简单

apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

apt-get install git

---
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install git-core

这里不做过多的操作介绍,具体可以参考下面的链接

  • https://www.runoob.com/git/

  • https://www.liaoxuefeng.com/wiki/896043488029600

注意的地方

  • 配置个人的用户名称和电子邮件地址,这样在使用的时候不用频繁需要输入账户和密码
git config --global user.name "xxxx"
git config --global user.email xxx@xxxx
  • 配置别名, 以节省每次提交时输入的字符
git config --global alias.st status   
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch

5. Docker安装

Docker 是一个开源的应用容器引擎, 它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

安装非常简单:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

详细资料请参考

  • https://www.runoob.com/docker

以上是CPU/GPU机器都需要安装的相关软件,如果服务器具有GPU,还需要安装GPU相关的配套软件


这篇文章介绍的比较详细

  • 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么

6. CUDA安装

CUDA英文全称是Compute Unified Device Architecture,是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅。

安装需要查好GPU版本对应的cuda版本,查询地址:

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

img

安装比较简单

# 1.下载对应的软件包并安装
# 按需求下载cuda的安装文件 cuda安装包:https://developer.nvidia.com/cuda-toolkit-archive
sudo sh cuda_9.0.176_384.81_linux.run

# 2.设置环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

注意的地方

一台服务器可以有多版本的cuda,这是由于不同的深度学习工具包所最终依赖的cuda版本不一样,而多位开发人员使用的深度学习工具不统一。

可以在同一台服务器上安装多个cuda版本,只是最终在链接的时候需要修改一下

多版本CUDA切换:

  • https://blog.csdn.net/Maple2014/article/details/78574275

7. CUDNN安装

CUDNN是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。

安装比较简单:

# 1.下载对应的软件包压缩包
# 按需求下载载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive

# 2.解压并安装
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

# 3.查看版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

总结: 网上的教程有很多,找到适合自己的最好,另外对命令慎重,有些命令也不一定对,反而对整体环境造成不可逆的升级等。尽量对每一行的命令做什么操作有所了解。

参考

  • https://zhuanlan.zhihu.com/p/32925500
  • https://blog.csdn.net/lambert310/article/details/52412059
  • https://www.cnblogs.com/believepd/p/10499844.html
  • https://www.cnblogs.com/leton/p/11674796.html
  • https://blog.csdn.net/ZZXin_/article/details/87951381
  • https://blog.csdn.net/weixin_42279044/article/details/83181686
  • https://zhuanlan.zhihu.com/p/47330858
  • https://my.oschina.net/u/2306127/blog/1801491
  • https://segmentfault.com/a/1190000016634056
  • https://cloud.tencent.com/developer/article/1528323