环境
CentOS release 6.3
Tesla P4
anaconda2
gcc4.8
glibc-2.14
tensorflow1.9
pytorch1.0
第一步:安装NVIDIA驱动,使lspci | grep -i nvidia能够显示出来,nvidia-smi查看GPU使用情况
参考https://blog.csdn.net/oTengYue/article/details/79506758
第二步:配置gcc4.8,https://blog.csdn.net/aojue1109/article/details/81948519
第三步:安装anaconda,https://www.anaconda.com/download/#linux,根据自己需要可以安装python2.7和python3*
第四步:安装软件:
1.安装tensorflow,参考http://www.cnblogs.com/zzb-Dream-90Time/p/9688330.html
我选择的是tensorflow1.9,执行conda install tensorflow-gpu==1.9,过程中会自动安装cuda9.0和cudnn7.1.2
2.安装pytorch,https://pytorch.org/get-started/locally/,选择合适的命令进行安装
1.配置GCC4.8环境:
/usr/bin/gcc --version
/usr/bin/g++ --version
/usr/bin/c++ --version
查看版本号,如果不是4.8版本,则需要做替换。
mv /usr/bin/gcc /usr/bin/gcc-4.*.bak
mv /usr/bin/g++ /usr/bin/g++-4.*.bak
mv /usr/bin/c++ /usr/bin/c++-4.*.bak
ln -s /home/work/.jumbo/opt/gcc48/bin/gcc /usr/bin/gcc
ln -s /home/work/.jumbo/opt/gcc48/bin/c++ /usr/bin/c++
ln -s /home/work/.jumbo/opt/gcc48/bin/g++ /usr/bin/g++
gcc --version
wget https://repo.anaconda.com/archive/Anaconda2-5.3.1-Linux-x86_64.sh
sh Anaconda2-5.3.1-Linux-x86_64.sh
执行source ~/.bashrc让安装的Anaconda起作用
增加源(提升安装软件速度):https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
由于Anaconda集成了很多python的安装包,基本的都已经安装好了。没有的软件,可以使用下面的方式安装,尽量选择conda install的安装方式,pip 安装的软件,执行的时候可能会报错
conda install gensim
conda install jieba
conda install opencv
anaconda2/bin/pip install xgboost
conda install tensoflow-gpu==1.9
conda install pytorch torchvision -c pytorch (结合自己的环境执行不同的命令:https://pytorch.org/get-started/locally/)
安装pytorch之后,运行的时候报错:'GLIBC_2.14' not found
解决方案:https://blog.csdn.net/clirus/article/details/62425498
1.查看自己的GLIBC的版本,strings /lib/libc.so.6 | grep GLIBC
如果没有,需要编译安装(root下),
(1)wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
(2)tar -zxvf glibc-2.14.tar.xz
(3)cd glibc-2.14
(4)mkdir build
(5)cd build
(6)../configure --prefix=/opt/glibc-2.14 这一步可能报错:export LD_LIBRARY_PATH= 把LD_LIBRARY_PATH清空,重新执行
(7)make -j4 && make install
可能报错:
Can't open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directory
就是缺少了必要的编译文件ld.so.conf。通过find命令找到对应的文件位置
find / -name "ld.so.conf" (root下执行)
选择一个合适的拷贝到对应的目录中,然后继续编译
cp /etc/ld.so.conf /opt/glibc-2.14/etc/
直到编译成功
测试一下编译的gilbc是否有问题:
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
如果系统没有问题:切换到root下,vim /etc/profile 添加:
export PATH=/home/work/anaconda2/bin:$PATH(不同的窗口配置起作用)
source /etc/profile
ll /usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13
https://www.jianshu.com/p/28a0c98027a8
防止运行pytorch的时候提示glibc-2.14 not find,通过strings /lib64/libc.so.6|grep GLIBC 发现确实没有libc-2.14,需要做软连接,
把 /lib64/libc.so.6备份为 /lib64/libc.so.6.bak
ln -s /opt/glibc-2.14/lib/libc.so.6 /lib64/libc.so.6
如果此时命令不能用了,也是误删除/lib64/libc.so.6,造成系统崩溃的恢复(千万不要推出root命令下),立马执行:LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
或者:LD_PRELOAD=/lib64/libc-2.12.so ln -s /opt/glibc-2.14/lib/libc.so.6 /lib64/libc.so.6
查看系统是否恢复以及/lib64/libc.so.6是否满足要求
https://www.linuxidc.com/Linux/2017-02/140994.htm
https://blog.csdn.net/mymy_blog/article/details/69337232
1.export LD_LIBRARY_PATH=
2.找到glibc-2.14/编译好的文件夹glibc-2.14/build,把libc.so.6 拷贝到/opt/glibc-2.14/lib/libc.so.6,执行strings opt/glibc-2.14/lib/libc.so.6 | grep GLIBC_ ,如果正常出现,则表示成功恢复
tensorflow-gpu和cuda的对应关系http://www.cnblogs.com/zzb-Dream-90Time/p/9688330.html
Failed to set locale, defaulting to C
yum reinstall glibc-common
运行tensorflow和pytorch出现错误:
Segmentation fault (core dumped)
可能是LD_LIBRARY_PATH环境配置冲突,由于是anaconda2中安装了cuda和cudnn,和系统中cuda和cudnn不兼容
export LD_LIBRARY_PATH=
测试,如果不报错,说明LD_LIBRARY_PATH设置的有问题,需要重新设置
最后测试pytorch程序和tensorflow,运行成功