Why no C++ love

I don’t get it, mxnet is built on C++, it is advertised and mentioned and the dll is in the Site-packages.
But the install instructions say to use c++ we must build from source. I will admit after a few weekends of trying I am forced to give up, it is a moving target and there is not one set of the conflicting and scatter brained (hyperlinks to other sections that overlap and contradict) instructions that actually or currently works.

Why is there not a CPP package. I see full Jenkins integration with a docker container so it must be going thru the build itself, just with the CPP_PACKAGE not set.

Can we just use the dll from site packages, the include folder and c++ sources and build the C++ API?

Why NOT provide it? It seems like c++ is being purposely discouraged. :frowning: Please, someone prove me wrong,

I agree @jshanab.

Pytorch for example provides nightly binary packages:

and there are also binaries available for TensorFlow 2.0 for different platforms:

It should also be officially stated somewhere that statically linking to MXNet today is practicably impossible:

“I am reaching a conclusion that the “libmxnet.a” artifact that is available today is not a complete static library that client can use.” – Amol Lele

However, I managed to build MXNet-mkl and MXNET-cu10 from source for Linux with relative ease and found the process easier than building TensorFlow from source for example. I haven’t tested all available options such as the Tensorrt binding though.
I’ll also try to build it on Windows soon and can provide you at least the .dll-file for cpu, if I manage to do it. The CUDA version might be inconsistent for gpu usage on your system.

I think the MXNet developers should focus more in improving the support of the main scripting/programming interfaces used by the community which are arguably Python and C++ rather than aiming to support almost any scripting language.

Best regards,
~QueensGambit

1 Like

Hello @jshanab,
I found a MXNet fork where Hu Shiwen (https://github.com/yajiedesign) kindly publishes MXNet C++ shared object files for Windows:
https://github.com/apache/incubator-mxnet/issues/2813

However, it seems that the build configuration is wrongly configured for Windows in the CMake file currently and most probably set to debug mode.
For Linux the shared object file is much smaller:
libmxnet.so, 245.6mb (built by myself)
libmxnet.dll, 1.5GB (built by Hu Shiwen)

Best,
~QueensGambit

1 Like