mxnet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sheng Zha <zhash...@apache.org>
Subject Re: Update GCC 4.8 dependency?
Date Tue, 27 Aug 2019 17:30:33 GMT
Just for the sake of completeness, another factor is the python platform tag manylinux2010
compliance [1]. Since it required GLIBC2.12 and GCC4.3, unfortunately even the existing minimum
version standard wouldn't allow us to be compliant.

[1] https://www.python.org/dev/peps/pep-0571/

On 2019/08/27 15:17:43, "Sunderland, Kellen" <kellens@amazon.de.INVALID> wrote: 
> We could think about moving to a newer version and updating the standard.  I'm using
gcc 4.9 with my work builds, but more modern compilers everywhere else (and is be willing
to update the work compiler).
> 
> One of the cons is that it makes our code less portable. When we update the minimum required
compiler (in Linux) then we use a toolchains with a new libc version, meaning MXNet could
not be used on older platforms without using docker or virtualization.  In our case updating
to a cpp17 compiler might mean dropping centos5 or Ubuntu 14.04 support.
> 
> If you look at CUDA releases as an example the continually releases binaries compiled
against older toolchains to support libc on most platforms.
> 
> What are the features you'd like to see in C++17?  I'd recommend we call out interesting
features and then see what compiler support we would need to use the feature.  It could be
the case that the feature is supported in a fairly old compiler version.
> 
> If we want to immediately modernize the codebase, I've noticed that their are actually
a few C++14/11 features we could be using but aren't.  (Clang-tidy lists a number of them
in each build).  We could start with those.
> 
> On Aug 27, 2019 2:53 AM, Leonard Lausen <leonard@lausen.nl> wrote:
> Hi,
> 
> "Currently, we only support gcc-4.8 build." [1]
> 
> Do we ever want to change this? gcc-4.8 is now available since more than
> 6 years and a lot has happened during that time. Also platforms have
> upgraded their default compiler versions, and gcc-7 is now commonly
> available (eg. Ubuntu 18.04 LTS, Amazon Linux 2). With gcc-7 we could
> for example rely on C++17.
> 
> Wikipedia says:
> - GCC since version 7 has complete support for C++17.
> - Clang 5 and later implement all the features of C++17.
> - Visual Studio 2017 15.7 (MSVC 19.14) supports almost all of C++17.
> 
> As Mu mentioned "Conservatism is not an option" if we want to bring
> MXNet forward. The benefits of 6 years of work on compilers as well as
> C++ ISO committee work may help us with that.
> 
> Should we adapt a newer compiler toolchain and perhaps C++17 standard?
> 
> Best regards
> Leonard
> 
> [1]: https://github.com/apache/incubator-mxnet/blob/681cfc4/tools/dependencies/README.md
> 
> 
> On Aug 27, 2019 2:53 AM, Leonard Lausen <leonard@lausen.nl> wrote:
> Hi,
> 
> "Currently, we only support gcc-4.8 build." [1]
> 
> Do we ever want to change this? gcc-4.8 is now available since more than
> 6 years and a lot has happened during that time. Also platforms have
> upgraded their default compiler versions, and gcc-7 is now commonly
> available (eg. Ubuntu 18.04 LTS, Amazon Linux 2). With gcc-7 we could
> for example rely on C++17.
> 
> Wikipedia says:
> - GCC since version 7 has complete support for C++17.
> - Clang 5 and later implement all the features of C++17.
> - Visual Studio 2017 15.7 (MSVC 19.14) supports almost all of C++17.
> 
> As Mu mentioned "Conservatism is not an option" if we want to bring
> MXNet forward. The benefits of 6 years of work on compilers as well as
> C++ ISO committee work may help us with that.
> 
> Should we adapt a newer compiler toolchain and perhaps C++17 standard?
> 
> Best regards
> Leonard
> 
> [1]: https://github.com/apache/incubator-mxnet/blob/681cfc4/tools/dependencies/README.md
> 

Mime
View raw message