From 1c0c73a404aa09c70dd403867bfaf71c0283a963 Mon Sep 17 00:00:00 2001 From: Veselin Dobrev Date: Sun, 4 May 2025 03:04:10 -0700 Subject: [PATCH] [mfem] Updates for v4.8 [magma] Add new versions for the rocm-core dependency [spectrum-mpi] Do not query languages that are not used by a dependent package [sundials] Fix llvm-amdgpu's C compiler: clang -> amdclang --- .../repos/builtin/packages/magma/package.py | 5 + .../packages/mfem/mfem-4.8-nvcc-c++17.patch | 129 ++++++++++++++++++ .../repos/builtin/packages/mfem/package.py | 38 ++++-- .../builtin/packages/spectrum-mpi/package.py | 11 +- .../builtin/packages/sundials/package.py | 2 +- 5 files changed, 172 insertions(+), 13 deletions(-) create mode 100644 var/spack/repos/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch diff --git a/var/spack/repos/builtin/packages/magma/package.py b/var/spack/repos/builtin/packages/magma/package.py index a937c710ad9..6a684a0e40c 100644 --- a/var/spack/repos/builtin/packages/magma/package.py +++ b/var/spack/repos/builtin/packages/magma/package.py @@ -69,6 +69,11 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage): "6.1.2", "6.2.0", "6.2.1", + "6.2.4", + "6.3.0", + "6.3.1", + "6.3.2", + "6.3.3", ]: depends_on(f"rocm-core@{ver}", when=f"@2.8.0: +rocm ^hip@{ver}") depends_on("python", when="@master", type="build") diff --git a/var/spack/repos/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch b/var/spack/repos/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch new file mode 100644 index 00000000000..db6e104aa54 --- /dev/null +++ b/var/spack/repos/builtin/packages/mfem/mfem-4.8-nvcc-c++17.patch @@ -0,0 +1,129 @@ +diff --git a/miniapps/dpg/convection-diffusion.cpp b/miniapps/dpg/convection-diffusion.cpp +index 7659e52745..170f8f1c5e 100644 +--- a/miniapps/dpg/convection-diffusion.cpp ++++ b/miniapps/dpg/convection-diffusion.cpp +@@ -79,7 +79,7 @@ enum prob_type + }; + + prob_type prob; +-Vector beta; ++Vector beta_glob; + real_t epsilon; + + real_t exact_u(const Vector & X); +@@ -120,7 +120,7 @@ int main(int argc, char *argv[]) + "Theta parameter for AMR"); + args.AddOption(&iprob, "-prob", "--problem", "Problem case" + " 0: manufactured, 1: Erickson-Johnson "); +- args.AddOption(&beta, "-beta", "--beta", ++ args.AddOption(&beta_glob, "-beta", "--beta", + "Vector Coefficient beta"); + args.AddOption(&static_cond, "-sc", "--static-condensation", "-no-sc", + "--no-static-condensation", "Enable static condensation."); +@@ -147,11 +147,11 @@ int main(int argc, char *argv[]) + int dim = mesh.Dimension(); + MFEM_VERIFY(dim > 1, "Dimension = 1 is not supported in this example"); + +- if (beta.Size() == 0) ++ if (beta_glob.Size() == 0) + { +- beta.SetSize(dim); +- beta = 0.0; +- beta[0] = 1.; ++ beta_glob.SetSize(dim); ++ beta_glob = 0.0; ++ beta_glob[0] = 1.; + } + + args.PrintOptions(std::cout); +@@ -199,10 +199,10 @@ int main(int argc, char *argv[]) + ConstantCoefficient eps2(1/(epsilon*epsilon)); + + ConstantCoefficient negeps(-epsilon); +- VectorConstantCoefficient betacoeff(beta); +- Vector negbeta = beta; negbeta.Neg(); +- DenseMatrix bbt(beta.Size()); +- MultVVt(beta, bbt); ++ VectorConstantCoefficient betacoeff(beta_glob); ++ Vector negbeta = beta_glob; negbeta.Neg(); ++ DenseMatrix bbt(beta_glob.Size()); ++ MultVVt(beta_glob, bbt); + MatrixConstantCoefficient bbtcoeff(bbt); + VectorConstantCoefficient negbetacoeff(negbeta); + +@@ -598,7 +598,7 @@ void exact_hatf(const Vector & X, Vector & hatf) + hatf.SetSize(X.Size()); + for (int i = 0; i