阿里云HPC升级 tensorfow 1.0之cuda、cudnn、glibc、libcxx详解大数据
昨天开始升级hpc的tensorflow,中间踩了个大坑。到现在才弄顺,mark一下。
gpu版的tf,可以在github上下载,然后按照教程使用pip安装。但需要更新很多系统包
升级cuda 8 及cudnn8 到官网下载 https://developer.nvidia.com/cuda-downloads按照教程直接安装就可以。
2.下载cudnn5.1 https://developer.nvidia.com/cudnn
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
cd cudnn-8.0-linux-x64-v5.1
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/ 升级glibc
glibc掌管着系统很多基础命令,例如ls,rm等,是系统的基础库。我也是被它坑的不浅。
先说正确的步骤:
wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.23.tar.xz
xz -d glibc-2.23.tar.xz
tar -xvf glibc-2.23.tar
cd glibc-2.23
mkdir build
cd build
../configure –prefix=/usr –disable-profile –enable-add-ons –with-headers=/usr/include –with-binutils=/usr/bin (博客显示有问题,应该是双横线。不行手敲吧)
make
make check (结果有错误,没有理它)
make install
我出错的问题:最初下载了一个6.23的包,make install 失败了,在lib64下产生了libc-2.23.so,但是没有完成libc.so.6的链接更新。 我想手动做这个软链接,就rm -f libc.so.6, 然后想使用ln, 但发现删除libc.so.6删除后,系统很多命令(包括ln)无法使用了,提示relocation error: libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference。 按照某篇博客的说法,执行了ldconfig,问题出现了。 ld出错了。 应该用LD_PRELOAD重新把原先的libc.so.6恢复。但错误已经发生了,系统都无法登录了。 最终更新/lib64/ld-linux-x86-64.so.2,才是系统可以重启。 这中间还遇到 “/lib64/libm.so.6: invalid ELF header”、 “/lib64/libm.so.6: invalid ELF header”这两个的问题,g++都无法使用了。
最终按照上面说的步骤,把glibc更新完,谢天谢地
错误:/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found
解决方法: 上述错误是因为libstdc++.so.6太久。 现在 libstdc++.so.6已经被纳入gcc安装包中,所以安装更新版本的gcc即可。 gcc 5.2就包含GLIBCXX_3.4.21的libstdc++.so.6
步骤:
1. wget http://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
2. tar -xf gcc-5.2.0.tar.bz2
3. cd gcc-5.2.0
4. ./contrib/download_prerequisites
5. mkdir gcc-temp
6. ../configure –enable-checking=release –enable-languages=c,c++ –disable-multilib (博客显示有问题,双横杠)
7. make (大概一个小时)
8. make install
更新完gcc后,libstdc++.so.6并没有被更新,需要手动完成,如下:
1. find / -name “libstdc++.so*”
发现有个
/home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 //最新动态库
……
2. cp /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64
3. cd /usr/lib64
4. rm -rf libstdc++.so.6
5. ln -s libstdc++.so.6.0.21 libstdc++.so.6
6. 执行strings /usr/lib64/libstdc++.so.6 | grep GLIBC就可以看到了
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9344.html
分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集相关文章
- 小前端面试阿里血泪史
- 凭借这份pdf,我成功拿下了阿里、腾讯、美团等offer(大数据岗)
- 阿里规约手动创建线程池,我为什么还继续使用Executors呢?
- 深入浅出阿里数据同步神器:Canal原理+配置+实战全网最全解析!
- 哪家互联网公司涨薪最厉害?居然不是阿里腾讯
- 阿里技术文档:Redis+Nginx+Spring全家桶+Dubbo精选
- MySQL如何实时同步数据到ES?试试这款阿里开源的神器
- CentOS配置本地yum源/阿里云yum源/163yuan源并配置yum源的优先级
- 大数据平台Hive数据迁移至阿里云ODPS平台流程与问题记录详解大数据
- 阿里云MySQL数据库实现云上数据未来(aliyunmysql)
- 阿里云MySQL数据迁移技术指南(阿里云MySQL数据迁移)
- 阿里“NASA”首个重磅武器亮相:机器学习平台 PAI 2.0
- 阿里云因 bug 禁用内部 IP 导致链路不通,造成大规模故障
- 阿里云开启技术服务“新长征”
- 阿里云 Redis 连接教程:快速实现高效数据缓存(阿里云redis连接)
- 阿里云断电,Redis数据丢失担忧(redis阿里云断电)