CentOS 6.3服务器上配置PyTorch与gcc
目录
方案一: 基于 conda 环境安装 pytorch-1.0,然后打包整个环境,直接在集群中使用。
优点:省去了编译步骤,后续升级支持简单。
缺点:发布版本往往对分布式训练支持不佳,一些特性需要通过源码编译才能集成进去。
方案二: 基于 pytorch-1.0 源码编译。(暂时使用此方案,若后续遇到问题行不通时,再回来尝试方案一)
优点:可以根据需要集成新特性。
缺点:在 CentOS6.3 系统上编译会遇到各种问题,风险高,可能需要大量的 hack 和 workaround。
一、版本查看
此版本为最初版本,安装后版本会发生变化。
1.1 CentOS版本查看
cat /etc/issue
$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
关于CentOS:
中文意思是社区企业操作系统,是Linux发行版之一。,CentOS是操作系统,redhat的再编译版本,免费的服务器系统
1.2 CUDA版本
查看CUDA驱动版本
驱动版本即为cuda driver version
输入nvidia-smi,看到我们服务器上的为:
NVIDIA-SMI 384.81 Driver Version: 384.81
输入 cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.81 Sat Sep 2 02:43:11 PDT 2017
GCC version: gcc version 4.8.2 (GCC)
CUDNN
$ cat /usr/local/cuda/version.txt
CUDA Version 7.5.18
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cat: /usr/local/cuda/include/cudnn.h: No such file or directory
看上去,服务器上并没有安装CUDNN
另个服务器上:
$ cat /usr/local/cuda/version.txt
CUDA Version 8.0.44
1.3 python版本
$ python
Python 2.6.6 (r266:84292, Jun 18 2012, 14:18:47)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
二、下载镜像
2.1 环境下载
我们下载python3.6配上的 PyTorch 1.0
# Python3.6 + PyTorch1.0
$ wget -e "http_proxy=8888" http://xxxxxx/py36_pytorch1.0_env0.1.3.tar.gz
--2019-03-21 15:37:44-- http://888888888888888/88888888888888/py36_pytorch1.0_env0.1.3.tar.gz
Resolving cp01-sys-hic-gpu-02.cp01... 8888888888888
Connecting to 888888888888888888|8888888888888888|:8888... connected.
Proxy request sent, awaiting response... 200 OK
Length: 1021679842 (974M) [application/octet-stream]
Saving to: "py36_pytorch1.0_env0.1.3.tar.gz"
100%[====================================>] 1,021,679,842 528K/s in 33m 38s
2019-03-21 16:11:23 (494 KB/s) - "py36_pytorch1.0_env0.1.3.tar.gz" saved
2.2 解压环境
tar xvzf py36_pytorch1.0_env0.1.3.tar.gz
关于解压 xvzf含义
https://zhidao.baidu.com/question/501957191.html
解压后,产生一个env文件夹。
$ ls
env py36_pytorch1.0_env0.1.3.tar.gz
$ env/bin/python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
注意,原始服务器上的python版本为2.6.6,直接键入python命令行即可。
我们的版本为3.6.8,打开方式为输入 env/bin/python ***
2.3 安装第三方包
# 1. 使用 pip 安装
env/bin/python -m pip install [包文件] # 注意,直接使用 env/bin/pip 安装会有路径依赖问题
# 2. 从源码编译安装,一般在源码目录下会提供 setup.py 编译&&安装脚本
env/bin/python setup.py # 注意事项:如果第三方库的 setup.py 操作涉及到C/C++源码编译,请务必确认如下事项:
# 1. GCC 为 jumbo 安装的 gcc5.2,与pytorch的工具链对齐,详细原因见
# 2. `strings /lib/libc.so.6 | grep GLIBC` `strings /lib64/libc.so.6 | grep GLIBC`最高版本为 GLIBC_2.12。否则可能出现本地能运行但集群无法运行的情况。
需要注意的是输入为 env/bin/python -m pip install , 不可以直接用env/bin/pip
(上面那个服务器,因为CUDNN版本问题导致torch引入出现bug,服务器与内网的连接依然有问题,于是)
三、安装成功
3.1 如上流程
下载安装包
# Python3.6 + PyTorch1.0
wget -e "http_proxy=8888888888888" http://888888888888888888/HGCP_DEMO/py36_pytorch1.0_env0.1.3.tar.gz
解压与安装
tar xvzf py36_pytorch1.0_env0.1.3.tar.gz
3.2 安装成功
$ ls
env py36_pytorch1.0_env0.1.3.tar.gz
$ env/bin/python
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
加入torch,未报错就成功
>>> import torch
>>>
此时已经可以运行cycle GAN
3.3 更改torch版本
运用清华的开源库。速度较快。
https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
env/bin/python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch==0.3.1
环境变量生效
vim ~/.bashrc
路径:
/home/work/cuda-8.0/lib64
/home/work/cuda-8.0/bin
加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/work/cuda-8.0/lib64
export PATH=$PATH:/home/work/cuda-8.0/bin
四、安装gcc(此方法不可用)
扩展gcc版本一起匹配,这样可以加入扩展的工具包。
4.1 安装Jumbo(不可用,外网无jumbo)
#下载
bash -c "$( curl http://888888888 )"; source ~/.bashrc
#运行
jumbo
4.2 用Jumbo装gcc 5.2
查找可安装的版本
jumbo search gcc
$ jumbo search gcc
colorgcc 1.3.2-1
A Perl wrapper to colorize the output of compilers with warning/error
messages matching the gcc output format
gcc46 4.6.3-5
The GNU Compiler Collection (4.6.x)
gcc48 4.8.3-1
The GNU Compiler Collection (4.8.x)
gcc49 4.9.2-1
The GNU Compiler Collection (4.9.x). The libsanitizer is not included,
since it does not compile well on linux 2.6.9.
gcc5 5.2.0-1
The GNU Compiler Collection (5.x).
gcc53 5.3.0-1
The GNU Compiler Collection (5.3).
安装
$ jumbo install gcc5
==> Calculating dependencies....
==> Packages to be installed:
#。。。。。
==> Installation of gcc5 done!
==> Installation done.
相关Linux及环境配置
客户端配置Hadoop并运用SLURM GPU集群与HDFS文件系统
SSH相关
windows PC用SSH连接Ubuntu14.04的配置与方法
macOS与CentOS之间互传文件(iTerm2与lrzsz)
环境配置相关
CentOS 6.3安装anaconda并配置pytorch与cuda
Ubuntu14.04安装Anaconda3-2018.12-x86_64
运用Anaconda对python 3.6与tensorflow-gpu与pip环境配置
虚拟环境中用Anaconda安装显卡CUDA驱动与CUDA运行版本匹配