Compare commits

...

2 Commits

Author SHA1 Message Date
Gregory Becker
675a182f14 Ignore provider weights for runtimes
Runtimes are inherently tied to the associated compilers,
and choices among runtimes should be delegated to the compiler
prioritization criteria not the provider weights. This fixes
a bug causing concretization to mix compilers more than necessary
to avoid using the runtime associated with the compiler specified
for the root. E.g. `foo%oneapi` building dependencies with `%gcc`
to minimize edges on which `intel-oneapi-runtime` provides
`fortran-rt`.

Signed-off-by: Gregory Becker <becker33@llnl.gov>
2025-03-24 18:07:59 -07:00
Chris White
ca977ea9e1 Fix missing hipBlas symbol (#49298)
Co-authored-by: Eric B. Chin <chin23@llnl.gov>
Co-authored-by: Greg Becker <becker33@llnl.gov>
2025-03-06 13:43:18 -08:00
2 changed files with 10 additions and 7 deletions

View File

@@ -1682,10 +1682,11 @@ opt_criterion(45, "preferred providers (non-roots)").
#minimize{ 0@245: #true }.
#minimize{ 0@45: #true }.
#minimize{
Weight@45+Priority,ProviderNode,Virtual
: provider_weight(ProviderNode, Virtual, Weight),
not attr("root", ProviderNode),
build_priority(ProviderNode, Priority)
Weight@45+Priority,X,Provider,Virtual
: provider_weight(node(X, Provider), Virtual, Weight),
not attr("root", node(X, Provider)),
build_priority(node(X, Provider), Priority),
not runtime(Provider)
}.
% Try to minimize the number of compiler mismatches in the DAG.

View File

@@ -282,6 +282,7 @@ class Mfem(Package, CudaPackage, ROCmPackage):
depends_on("mpi", when="+mpi")
depends_on("hipsparse", when="@4.4.0:+rocm")
depends_on("hipblas", when="@4.4.0:+rocm")
with when("+mpi"):
depends_on("hypre")
@@ -986,9 +987,10 @@ def find_optional_library(name, prefix):
if "^rocprim" in spec and not spec["hip"].external:
# rocthrust [via petsc+rocm] has a dependency on rocprim
hip_headers += spec["rocprim"].headers
if "^hipblas" in spec and not spec["hip"].external:
# superlu-dist+rocm needs the hipblas header path
hip_headers += spec["hipblas"].headers
if "^hipblas" in spec:
hipblas = spec["hipblas"]
hip_headers += hipblas.headers
hip_libs += hipblas.libs
if "%cce" in spec:
# We assume the proper Cray CCE module (cce) is loaded:
proc = str(spec.target.family)