mxnet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonard Lausen <notificati...@github.com>
Subject [apache/incubator-mxnet] [RFC] Raising the toolchain requirements for MXNet 2 (#17968)
Date Sat, 04 Apr 2020 01:02:02 GMT
## Description
I propose to raise our toolchain requirements for the MXNet 2 development branch to require
at minimum gcc7 or clang6 on Unix systems and MSVC 2019 on Windows system. All 3 have [reasonable
complete C++17 support](https://en.cppreference.com/w/cpp/compiler_support#cpp17) and MSVC
2019 fully supports, so that we can adopt `C++17` as required language standard. gcc7 and
clang6 are available on Ubuntu 18.04 LTS release.

The benefits of adopting a more recent C++ standard should be obvious, giving us access to
new features and abstractions that the C++ committee has worked on over the course of 6 years.
The benefits of adopting a more recent toolchain should also be obvious, as newer compilers
will come with more optimizations as older ones.

There are no downsides for MXNet's users, as we can continue to build binary releases of MXNet
on CentOS 6 that should work on any major Linux distribution released after 2004. This is
possible based on the great work by RedHat to bring new C++ toolchains to old platforms [1].


With respect to Windows: MSVC 2019 is the first MSVC that uses an 64bit toolchain by default.
You may have noticed that our Windows CI was recently blocked due to the use of a 32bit toolchain
and updating it to MSVC 2019 was chosen as remedy (attempts to use the 64bit version of the
2017 toolchain failed). It also appears that MSVC 2019 16.5 is the first release to make proper
use of advanced instruction sets, such as AVX2 [2].

## References
1: https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/
2: https://devblogs.microsoft.com/cppblog/avx2-floating-point-improvements-in-visual-studio-2019-version-16-5/

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/issues/17968
Mime
  • Unnamed multipart/alternative (inline, 7-Bit, 0 bytes)
View raw message