summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2024-09-21 14:05:41 +0200
committerGitHub <noreply@github.com>2024-09-21 14:05:41 +0200
commitb93c57cab972d676c9540e01137fd5e0af87fa5a (patch)
tree154fd078706aab23f08478ab6b09a828be8a2883 /var
parent35ae2743d9888098a8f1409a327aeefa2f97f4b0 (diff)
downloadspack-b93c57cab972d676c9540e01137fd5e0af87fa5a.tar.gz
spack-b93c57cab972d676c9540e01137fd5e0af87fa5a.tar.bz2
spack-b93c57cab972d676c9540e01137fd5e0af87fa5a.tar.xz
spack-b93c57cab972d676c9540e01137fd5e0af87fa5a.zip
Remove `spack.target` from code (#46503)
The `spack.target.Target` class is a weird entity, that is just needed to: 1. Sort microarchitectures in lists deterministically 2. Being able to use microarchitectures in hashed containers This PR removes it, and uses `archspec.cpu.Microarchitecture` directly. To sort lists, we use a proper `key=` when needed. Being able to use `Microarchitecture` objects in sets is achieved by updating the external `archspec`. Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/amdfftw/package.py6
-rw-r--r--var/spack/repos/builtin/packages/arbor/package.py18
-rw-r--r--var/spack/repos/builtin/packages/hpcc/package.py3
-rw-r--r--var/spack/repos/builtin/packages/lammps/package.py3
-rw-r--r--var/spack/repos/builtin/packages/namd/package.py3
-rw-r--r--var/spack/repos/builtin/packages/neuron/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-tensorflow/package.py3
-rw-r--r--var/spack/repos/builtin/packages/wgl/package.py2
8 files changed, 23 insertions, 18 deletions
diff --git a/var/spack/repos/builtin/packages/amdfftw/package.py b/var/spack/repos/builtin/packages/amdfftw/package.py
index 6ac400a013..f508c4162b 100644
--- a/var/spack/repos/builtin/packages/amdfftw/package.py
+++ b/var/spack/repos/builtin/packages/amdfftw/package.py
@@ -7,6 +7,7 @@ import os
from llnl.util import tty
+from spack.build_environment import optimization_flags
from spack.package import *
from spack.pkg.builtin.fftw import FftwBase
@@ -213,10 +214,7 @@ class Amdfftw(FftwBase):
# variable to set AMD_ARCH configure option.
# Spack user can not directly use AMD_ARCH for this purpose but should
# use target variable to set appropriate -march option in AMD_ARCH.
- arch = spec.architecture
- options.append(
- "AMD_ARCH={0}".format(arch.target.optimization_flags(spec.compiler).split("=")[-1])
- )
+ options.append(f"AMD_ARCH={optimization_flags(self.compiler, spec.target)}")
# Specific SIMD support.
# float and double precisions are supported
diff --git a/var/spack/repos/builtin/packages/arbor/package.py b/var/spack/repos/builtin/packages/arbor/package.py
index 832078c7bd..415914b7ba 100644
--- a/var/spack/repos/builtin/packages/arbor/package.py
+++ b/var/spack/repos/builtin/packages/arbor/package.py
@@ -2,7 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
+from spack.build_environment import optimization_flags
from spack.package import *
@@ -110,21 +110,23 @@ class Arbor(CMakePackage, CudaPackage):
return ["all", "html"] if "+doc" in self.spec else ["all"]
def cmake_args(self):
+ spec = self.spec
args = [
self.define_from_variant("ARB_WITH_ASSERTIONS", "assertions"),
self.define_from_variant("ARB_WITH_MPI", "mpi"),
self.define_from_variant("ARB_WITH_PYTHON", "python"),
self.define_from_variant("ARB_VECTORIZE", "vectorize"),
+ self.define("ARB_ARCH", "none"),
+ self.define("ARB_CXX_FLAGS_TARGET", optimization_flags(self.compiler, spec.target)),
]
if self.spec.satisfies("+cuda"):
- args.append("-DARB_GPU=cuda")
- args.append(self.define_from_variant("ARB_USE_GPU_RNG", "gpu_rng"))
-
- # query spack for the architecture-specific compiler flags set by its wrapper
- args.append("-DARB_ARCH=none")
- opt_flags = self.spec.architecture.target.optimization_flags(self.spec.compiler)
- args.append("-DARB_CXX_FLAGS_TARGET=" + opt_flags)
+ args.extend(
+ [
+ self.define("ARB_GPU", "cuda"),
+ self.define_from_variant("ARB_USE_GPU_RNG", "gpu_rng"),
+ ]
+ )
return args
diff --git a/var/spack/repos/builtin/packages/hpcc/package.py b/var/spack/repos/builtin/packages/hpcc/package.py
index 4483426024..e8a9acb6de 100644
--- a/var/spack/repos/builtin/packages/hpcc/package.py
+++ b/var/spack/repos/builtin/packages/hpcc/package.py
@@ -7,6 +7,7 @@ import os
import platform
import re
+from spack.build_environment import optimization_flags
from spack.package import *
@@ -161,7 +162,7 @@ class Hpcc(MakefilePackage):
if spec.satisfies("%intel"):
# with intel-parallel-studio+mpi the '-march' arguments
# are not passed to icc
- arch_opt = spec.architecture.target.optimization_flags(spec.compiler)
+ arch_opt = optimization_flags(self.compiler, spec.target)
self.config["@CCFLAGS@"] = f"-O3 -restrict -ansi-alias -ip {arch_opt}"
self.config["@CCNOOPT@"] = "-restrict"
self._write_make_arch(spec, prefix)
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py
index 5c1f9c0588..be1697543e 100644
--- a/var/spack/repos/builtin/packages/lammps/package.py
+++ b/var/spack/repos/builtin/packages/lammps/package.py
@@ -5,6 +5,7 @@
import datetime as dt
import os
+from spack.build_environment import optimization_flags
from spack.package import *
@@ -898,7 +899,7 @@ class Lammps(CMakePackage, CudaPackage, ROCmPackage, PythonExtension):
args.append(self.define("CMAKE_CXX_FLAGS_RELWITHDEBINFO", cxx_flags))
# Overwrite generic cpu tune option
- cmake_tune_flags = spec.architecture.target.optimization_flags(spec.compiler)
+ cmake_tune_flags = optimization_flags(self.compiler, spec.target)
args.append(self.define("CMAKE_TUNE_FLAGS", cmake_tune_flags))
args.append(self.define_from_variant("LAMMPS_SIZES", "lammps_sizes"))
diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py
index 2e9fc20f79..47fcb3b03c 100644
--- a/var/spack/repos/builtin/packages/namd/package.py
+++ b/var/spack/repos/builtin/packages/namd/package.py
@@ -9,6 +9,7 @@ import sys
import llnl.util.tty as tty
+from spack.build_environment import optimization_flags
from spack.package import *
@@ -175,7 +176,7 @@ class Namd(MakefilePackage, CudaPackage, ROCmPackage):
# this options are take from the default provided
# configuration files
# https://github.com/UIUC-PPL/charm/pull/2778
- archopt = spec.architecture.target.optimization_flags(spec.compiler)
+ archopt = optimization_flags(self.compiler, spec.target)
if self.spec.satisfies("^charmpp@:6.10.1"):
optims_opts = {
diff --git a/var/spack/repos/builtin/packages/neuron/package.py b/var/spack/repos/builtin/packages/neuron/package.py
index 2887ea9342..2cb16fdd03 100644
--- a/var/spack/repos/builtin/packages/neuron/package.py
+++ b/var/spack/repos/builtin/packages/neuron/package.py
@@ -3,6 +3,7 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.build_environment import optimization_flags
from spack.package import *
@@ -149,7 +150,7 @@ class Neuron(CMakePackage):
# add cpu arch specific optimisation flags to CMake so that they are passed
# to embedded Makefile that neuron has for compiling MOD files
- compilation_flags = self.spec.architecture.target.optimization_flags(self.spec.compiler)
+ compilation_flags = optimization_flags(self.compiler, self.spec.target)
args.append(self.define("CMAKE_CXX_FLAGS", compilation_flags))
return args
diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py
index 9935be8b29..dfe4f72e6b 100644
--- a/var/spack/repos/builtin/packages/py-tensorflow/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py
@@ -8,6 +8,7 @@ import os
import sys
import tempfile
+from spack.build_environment import optimization_flags
from spack.package import *
rocm_dependencies = [
@@ -656,7 +657,7 @@ class PyTensorflow(Package, CudaPackage, ROCmPackage, PythonExtension):
# Please specify optimization flags to use during compilation when
# bazel option '--config=opt' is specified
- env.set("CC_OPT_FLAGS", spec.architecture.target.optimization_flags(spec.compiler))
+ env.set("CC_OPT_FLAGS", optimization_flags(self.compiler, spec.target))
# Would you like to interactively configure ./WORKSPACE for
# Android builds?
diff --git a/var/spack/repos/builtin/packages/wgl/package.py b/var/spack/repos/builtin/packages/wgl/package.py
index b420cdcf64..9d02f3c139 100644
--- a/var/spack/repos/builtin/packages/wgl/package.py
+++ b/var/spack/repos/builtin/packages/wgl/package.py
@@ -83,7 +83,7 @@ class Wgl(Package):
return variants
def _spec_arch_to_sdk_arch(self):
- spec_arch = str(self.spec.architecture.target.microarchitecture.family).lower()
+ spec_arch = str(self.spec.architecture.target.family).lower()
_64bit = "64" in spec_arch
arm = "arm" in spec_arch
if arm: