From aa3c7a138a3f2699c1a6bd8fb9258d73729a060e Mon Sep 17 00:00:00 2001 From: MichaelLaufer <70094649+MichaelLaufer@users.noreply.github.com> Date: Sun, 22 May 2022 21:01:21 +0300 Subject: py-pyfr: Add v1.14.0, add LIBXSMM variant (#30612) * Update PyFR, Gimmik versions. Add PyFR LIBXSMM variant * Fixes * Changes to variants * Update py-gimmik version requirement in py-pyfr * Revert "Update py-gimmik version requirement in py-pyfr" This reverts commit 3b3fde30425ece252290eb0a2793ca1707f84860. * Update libxsmm conflicts --- var/spack/repos/builtin/packages/libxsmm/package.py | 16 +++++++++++++--- var/spack/repos/builtin/packages/py-gimmik/package.py | 5 ++++- var/spack/repos/builtin/packages/py-pyfr/package.py | 15 +++++++++++---- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py index b4ed1b167c..b760406a64 100644 --- a/var/spack/repos/builtin/packages/libxsmm/package.py +++ b/var/spack/repos/builtin/packages/libxsmm/package.py @@ -60,12 +60,15 @@ class Libxsmm(MakefilePackage): description='With shared libraries (and static libraries).') variant('debug', default=False, description='With call-trace (LIBXSMM_TRACE); unoptimized.') - variant('header-only', default=False, + variant('header-only', default=False, when='@1.6.2:', description='With header-only installation') variant('generator', default=False, description='With generator executable(s)') - conflicts('+header-only', when='@:1.6.2', - msg='Header-only is available since v1.6.2!') + variant('blas', default='default', multi=False, + description='Control behavior of BLAS calls', + values=('default', '0', '1', '2')) + variant('large_jit_buffer', default=False, when='@1.17:', + description='Max. JIT buffer size increased to 256 KiB') depends_on('python', type='build') @property @@ -95,6 +98,13 @@ class Libxsmm(MakefilePackage): make_args += ['DBG=1'] make_args += ['TRACE=1'] + blas_val = spec.variants['blas'].value + if blas_val != 'default': + make_args += ['BLAS={0}'.format(blas_val)] + + if '+large_jit_buffer' in spec: + make_args += ['CODE_BUF_MAXSIZE=262144'] + if '+shared' in spec: make(*(make_args + ['STATIC=0'])) diff --git a/var/spack/repos/builtin/packages/py-gimmik/package.py b/var/spack/repos/builtin/packages/py-gimmik/package.py index f562b27609..30744e54e2 100644 --- a/var/spack/repos/builtin/packages/py-gimmik/package.py +++ b/var/spack/repos/builtin/packages/py-gimmik/package.py @@ -15,8 +15,11 @@ class PyGimmik(PythonPackage): homepage = "https://github.com/PyFR/GiMMiK" pypi = "gimmik/gimmik-2.2.tar.gz" - maintainers = ["michaellaufer"] + maintainers = ["MichaelLaufer"] + version( + "2.3", sha256="c019c85316bcf0d5e84de9b7d10127355dfe8037c0e37f1880a9819ce92b74e1" + ) version( "2.2", sha256="9144640f94aab92f9c5dfcaf16885a79428ab97337cf503a4b2dddeb870f3cf0" ) diff --git a/var/spack/repos/builtin/packages/py-pyfr/package.py b/var/spack/repos/builtin/packages/py-pyfr/package.py index ce8f68832d..424c4cb5ef 100644 --- a/var/spack/repos/builtin/packages/py-pyfr/package.py +++ b/var/spack/repos/builtin/packages/py-pyfr/package.py @@ -15,13 +15,17 @@ class PyPyfr(PythonPackage): homepage = "http://www.pyfr.org/" pypi = "pyfr/pyfr-1.13.0.tar.gz" git = "https://github.com/PyFR/PyFR/" - maintainers = ["michaellaufer"] + maintainers = ["MichaelLaufer"] # git branches version("develop", branch="develop") version("master", branch="master") # pypi releases + version( + "1.14.0", + sha256="ebf40ce0896cce9ac802e03fd9430b5be30ea837c31224531a6d5fd68f820766", + ) version( "1.13.0", sha256="ac6ecec738d4e23799ab8c50dea9bdbd7d37bc971bd33f22720c5a230b8e7b2f", @@ -31,21 +35,24 @@ class PyPyfr(PythonPackage): variant("scotch", default=False, description="Scotch for mesh partitioning") variant("cuda", default=False, description="CUDA backend support") variant("hip", default=False, description="HIP backend support") + variant("libxsmm", default=True, description="LIBXSMM for OpenMP backend") + variant("scipy", default=True, description="Scipy acceleration for point sampling") # Required dependencies depends_on("python@3.9:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-gimmik@2.2:2", type=('build', 'run')) + depends_on("py-gimmik@2.3:2", when='@1.14.0:', type=('build', 'run')) depends_on("py-h5py@2.10:", type=('build', 'run')) depends_on("py-mako@1.0.0:", type=('build', 'run')) depends_on("py-mpi4py@3.1.0:", type=('build', 'run')) depends_on("py-numpy@1.20:+blas", type=('build', 'run')) depends_on("py-platformdirs@2.2.0:", type=('build', 'run')) depends_on("py-pytools@2016.2.1:", type=('build', 'run')) - depends_on("py-scipy", type=('build', 'run')) - # Optional dependecies - depends_on("metis@5.0:", when="+metis", type=('run')) + # Optional dependencies + depends_on("py-scipy", when="+scipy", type=('build', 'run')) depends_on("scotch@6.0:", when="+scotch", type=('run')) depends_on("cuda@8.0:", when="+cuda", type=('run')) depends_on("rocblas@4.5.0:", when="+hip", type=('run')) + depends_on("libxsmm@1.18:+shared blas=0 +large_jit_buffer", when="+libxsmm", type=('run')) -- cgit v1.2.3-60-g2f50