Paddle 海光DCU编paddle-rocm linux gcc5.4版本失败

v1uwarro  于 2022-10-20  发布在  Linux
关注(0)|答案(8)|浏览(297)

背景:编译海光DCU用paddle-rocm库,用paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11镜像能够编译成功,但是该镜像内gcc版本为4.8版本,so在gcc高于4.8的linux环境内链接会出现ABI兼容性问题(gcc 4.8和gcc5.1之后版本ABI不兼容),为了编译gcc5.4版本so,升级了paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11镜像内gcc版本到5.4,但是编译报错如下:

Paddle版本:release/2.1
CPU: 16核x86 cpu,内存32GB
编译环境:paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11镜像内编译,centos7,升级gcc和libstdc++.so版本到gcc 5.4

想问下此链接报错是什么原因造成的,或者paddle是否有官方的高gcc版本镜像供使用以编译paddle-rocm海光DCU库

uxhixvfz

uxhixvfz1#

已将问题发给 rocm 负责人

vatpfxk5

vatpfxk52#

hi, @markluofd ,

paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11 这个镜像里面的GCC/G++版本是 7.3.1-5,即devtoolset-7的版本。

原因是ROCM4.0软件栈官方的release notes里面只能支持devtoolset-7,这个是硬件SDK的要求。

详细信息可以参考 https://github.com/RadeonOpenCompute/ROCm/releases/tag/rocm-4.0.1

因此目前在海光DCU上暂时无法支持其他版本的GCC。

另外:关于镜像里面GCC 7.3.1版本的信息可以参考ROCM的dockerfile:

https://github.com/PaddlePaddle/Paddle/blob/develop/tools/dockerfile/Dockerfile.rocm#L26

镜像中运行 GCC/G++ 版本输出如下:

如果输出不对,可以在容器内运行一下 source /opt/rh/devtoolset-7/enable 的命令。

详细可以参考下官网文档的这里进行编译环境的检查:

https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/09_hardware_support/rocm_docs/paddle_install_cn.html

2ekbmq32

2ekbmq323#

感谢解答
有看到镜像里面使能了 devtoolset-7,但不确实是因为libstdc++.so版本低还是代码里有什么编译选项,镜像编出来的libpaddle_inference.so查看编译器是能看到gcc4.8.5的

而且,在一个高gcc版本的环境下链接libpaddle_inference.so也会报gcc 4.8的string带来的abi不兼容问题

t8e9dugd

t8e9dugd6#

想说有没有办法能解决当前镜像编译出的so在高gcc版本(gcc大于等于5.1)下面链接libpaddle_inference.so报abi不兼容的问题

33qvvth1

33qvvth17#

hi, @markluofd

你这里编译的是Paddle Inference的C++库对吗?这个库建议编译的时候带上 “-D_GLIBCXX_USE_CXX11_ABI=0” 的编译选项来保证GCC > 5.x 版本下的ABI兼容性。

如果加了以上编译选项之后,你的Inference C++ Lib库还是有问题,请发一下你编译Inference C++ lib库的CMake命令,谢谢!

eoxn13cs

eoxn13cs8#

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看 官网API文档常见问题历史IssueAI社区 来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

相关问题