Closed inglada closed 6 years ago
@inglada thanks for filing issue. @leleamol here to help you out.
Usually GLIBC
ship with your corresponding platform. Ideally, we have the best compatibility with Ubuntu 16.04
and most of the examples are built and tested there.
@mxnet-label-bot please add [c++, install, example]
Hi, Thanks for your answer. I helped me found some additional info. I am using a gcc version which is installed in /usr/local/ and made available through debian/ubuntu "alternatives" mechanism via symlinks in /usr/bin/. The problem is that libmxnet is using /usr/lib/x86_64-linux-gnu/libstdc++.so.6 instead of the one corresponding to the compiler used for building.
If I use the gcc 6.3 version in /usr/bin/ everything goes OK.
This is not a sane behaviour, since it means that something in mxnet build process is not using the compiler's default libstdc++; but the one which is in /usr/lib/. The "alternatives" mechanism works fine for many libraries I build from source.
There may be something hard coded in the provided Makefile. I can try to investigate further if you give me some hints.
Is CMake a supported build process?
Thanks.
@inglada Thanks for pointing it out the issue and happy to see you get it to work. I am not surprised that MXNet is not using a gcc from the system but a fixed version because of compatibilities to most of the dependencies. But the inconsistency during the building process is a problem.
We do have a CMake process for Windows. I am not sure if it is also applicable to other platforms. https://github.com/apache/incubator-mxnet/blob/master/CMakeLists.txt @marcoabreu @lebeg any idea on Cmake?
Hi @inglada Will you be able to share the use case that you were planning to address using C++ API?
@leleamol Do you mean the application field? I don't understand the question.
@lanking520 cmake can also be used for other systems. We use it on Ubuntu, for example
@inglada I would like to know how do you plan to use C++ API, whether in training workflow or inference workflow.
@leleamol I would like to use it for all steps of the ML process: building the model architecture (included new layers that I would implement), training and deployment over large amounts of data on a HPC cluster.
mxnet would be a dependency of http://www.orfeo-toolbox.org which is CMake based and has a "superbuild" process to build all its dependencies (boost, itk, gdal, opencv, libsvm, shark-ml, etc.).
We have now the means of integrating Tensorflow, but it is very difficult to build (bazel based!) and the c++ API is not exposed. Furthermore, I have found mxnet's API much more intuitive.
I am also evaluating PyTorch, since they are now exposing a C++ fontend. However, not using static graphs makes me wonder about performances.
@inglada feel free to reopen it if the PR didn't resolve your issue or have any other question
Description
When running the cpp-package examples build from source, the following error occurs
./alexnet: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
GLIBCXX_3.4.23' not found (required by ./alexnet)`Environment info (Required)
Package used (Python/R/Scala/Julia): I'm using C++
Build info (Required if built from source)
Compiler (gcc/clang/mingw/visual studio): g++ (GCC) 8.2.0
MXNet commit hash: b89a36d94b5b694b8fd926e6249f7490b38432f6
Build config:
Error Message:
./alexnet: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
GLIBCXX_3.4.23' not found (required by ./alexnet)`Minimum reproducible example
Steps to reproduce
(Paste the commands you ran that produced the error.)