[v1.x] use gcc-8.5 instead of gcc-10 for aarch64 build#20318
[v1.x] use gcc-8.5 instead of gcc-10 for aarch64 build#20318Zha0q1 merged 7 commits intoapache:v1.xfrom
Conversation
|
Hey @mseth10 , Thanks for submitting the PR
CI supported jobs: [website, centos-gpu, centos-cpu, windows-gpu, miscellaneous, unix-gpu, windows-cpu, sanity, unix-cpu, edge, clang] Note: |
|
@mxnet-bot run ci [centos-gpu] |
|
Jenkins CI successfully triggered : [centos-gpu] |
|
@mxnet-bot run ci [unix-gpu] |
|
Jenkins CI successfully triggered : [unix-gpu] |
tools/dependencies/openblas.sh
Outdated
| # openblas build fails with gcc-8.5, hence using gcc-8.4 explicitly | ||
| CXX="g++-8 -fPIC" CC="gcc-8 -fPIC" FC="gfortran-8" $MAKE DYNAMIC_ARCH=1 USE_OPENMP=1 |
There was a problem hiding this comment.
Have you tried updating openblas?
There was a problem hiding this comment.
Tried OpenBLAS v0.3.10 (same version as master) and it works with gcc-8.5 , updated it. Thanks for the suggestion.
There was a problem hiding this comment.
Great! Would you consider v0.3.15? I see there are a couple of ARM-specific fixes in between of v0.3.10 and v0.3.15 including "Fixed segmentation faults in DYNAMIC_ARCH builds" which would affect us as we use DYNAMIC_ARCH=1
|
Merging this pr for now so I can base the APL changes to this commit. We can update openblas in another pr |
* use gcc-8.5 instead of gcc-10 with outline-atomics flag * debug openblas * fix apt install * use gcc-7 for openblas * use gcc-8.4 for openblas * update openblas * remove gcc-8 as no longer required
* use gcc-8.5 instead of gcc-10 with outline-atomics flag * debug openblas * fix apt install * use gcc-7 for openblas * use gcc-8.4 for openblas * update openblas * remove gcc-8 as no longer required
…20333) * [v1.x] [CD] Add Aarch64 to cd (#20288) * add initial cd changes for aarch64 * skip failing aarch64 tests * skip failing aarch64 tests * add cd wheel support * add aarch64 node to cd pypi * fix dockerfile for aarch64 * fix dockerfile for aarch64 * refer github issue for failing tests * update pypi package name * add requirements file for aarch64 for cd docker * [v1.x] Enable MKLDNN + APL Integration in CD (#20294) * initial * Update python_images.sh * Update python_images.sh * Update Dockerfile * Update Dockerfile * Update Dockerfile * Update AARCH64_CPU_ADDITIONAL.md * Update pip.md * Update pip.md * [v1.x] use gcc-8.5 instead of gcc-10 for aarch64 build (#20318) * use gcc-8.5 instead of gcc-10 with outline-atomics flag * debug openblas * fix apt install * use gcc-7 for openblas * use gcc-8.4 for openblas * update openblas * remove gcc-8 as no longer required * [v1.x] Update openblas version to 0.3.15 (#20328) * update apl version Co-authored-by: Manu Seth <22492939+mseth10@users.noreply.github.com> Co-authored-by: Zhaoqi Zhu <zhaoqizhu96@gmail.com> Co-authored-by: Wei Chu <weichu@amazon.com>
Description
In order to get the advantage of LSE support while supporting all AArch64 platforms, we used gcc-10 on u18 base docker image as it supports the build flag
-moutline-atomics. But using gcc-10 also creates a dependency of generated MXNet wheel on GLIBCXX_3.4.26, and so we need to upgrade libstdc++6 package on u18 to get the wheel working. On u20, the wheel works fine.2 weeks ago gcc-8.5 was launched that added support for the build flag
-moutline-atomics. Since there is no ubuntu/canonical package for gcc-8.5, I tried building it from source and it works, with the advantage over gcc-10 that we dont need to upgrade libstdc++6 on u18.Changes
libc6-lse.-march=armv8-a+crc+cryptoinstead of-march=armv8earlier to get the benefit of crc and crypto extension.