diff options
author | AMD Toolchain Support <73240730+amd-toolchain-support@users.noreply.github.com> | 2021-03-19 05:39:20 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-18 17:09:20 -0700 |
commit | 4f1a76a0d161223a5eff21662e4d87176f2b7e4e (patch) | |
tree | 1e8fa916f2c3e51dcdc262bb784b7e672c45c373 | |
parent | d07cb59bef98f26ed0d2da332301e5277dd8b4d9 (diff) | |
download | spack-4f1a76a0d161223a5eff21662e4d87176f2b7e4e.tar.gz spack-4f1a76a0d161223a5eff21662e4d87176f2b7e4e.tar.bz2 spack-4f1a76a0d161223a5eff21662e4d87176f2b7e4e.tar.xz spack-4f1a76a0d161223a5eff21662e4d87176f2b7e4e.zip |
fixing the perf regression issues with OpenMPI v4.0.x till v4.1.0 for x86_64 (#22350)
-rw-r--r-- | var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch | 27 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/openmpi/package.py | 3 |
2 files changed, 30 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch b/var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch new file mode 100644 index 0000000000..4fc3112567 --- /dev/null +++ b/var/spack/repos/builtin/packages/openmpi/opal_assembly_arch.patch @@ -0,0 +1,27 @@ +diff --git a/opal/include/opal/sys/gcc_builtin/atomic.h b/opal/include/opal/sys/gcc_builtin/atomic.h +index d85ff02bd6a..a465fdae5db 100644 +--- a/opal/include/opal/sys/gcc_builtin/atomic.h ++++ b/opal/include/opal/sys/gcc_builtin/atomic.h +@@ -13,8 +13,8 @@ + * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. + * Copyright (c) 2014-2017 Los Alamos National Security, LLC. All rights + * reserved. +- * Copyright (c) 2016-2017 Research Organization for Information Science +- * and Technology (RIST). All rights reserved. ++ * Copyright (c) 2016-2021 Research Organization for Information Science ++ * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 Triad National Security, LLC. All rights + * reserved. + * $COPYRIGHT$ +@@ -61,9 +61,8 @@ static inline void opal_atomic_rmb(void) + { + #if OPAL_ASSEMBLY_ARCH == OPAL_X86_64 + /* work around a bug in older gcc versions where ACQUIRE seems to get +- * treated as a no-op instead of being equivalent to +- * __asm__ __volatile__("": : :"memory") */ +- __atomic_thread_fence (__ATOMIC_SEQ_CST); ++ * treated as a no-op instead */ ++ __asm__ __volatile__("": : :"memory"); + #else + __atomic_thread_fence (__ATOMIC_ACQUIRE); + #endif diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index 2b9d8aa0af..c0c532f187 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -188,6 +188,9 @@ class Openmpi(AutotoolsPackage): # The second patch was applied starting version v4.0.0 and backported to # v2.x, v3.0.x, and v3.1.x. patch('use_mpi_tkr_sizeof/step_2.patch', when='@1.8.4:2.1.3,3:3.0.1') + # To fix performance regressions introduced while fixing a bug in older + # gcc versions on x86_64, Refs. open-mpi/ompi#8603 + patch('opal_assembly_arch.patch', when='@4.0.0:4.1.1') variant( 'fabrics', |