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 3b3fde3042.

* Update libxsmm conflicts
This commit is contained in:
MichaelLaufer 2022-05-22 21:01:21 +03:00 committed by GitHub
parent 42441cddcc
commit aa3c7a138a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 8 deletions

View File

@ -60,12 +60,15 @@ class Libxsmm(MakefilePackage):
description='With shared libraries (and static libraries).') description='With shared libraries (and static libraries).')
variant('debug', default=False, variant('debug', default=False,
description='With call-trace (LIBXSMM_TRACE); unoptimized.') 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') description='With header-only installation')
variant('generator', default=False, variant('generator', default=False,
description='With generator executable(s)') description='With generator executable(s)')
conflicts('+header-only', when='@:1.6.2', variant('blas', default='default', multi=False,
msg='Header-only is available since v1.6.2!') 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') depends_on('python', type='build')
@property @property
@ -95,6 +98,13 @@ def build(self, spec, prefix):
make_args += ['DBG=1'] make_args += ['DBG=1']
make_args += ['TRACE=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: if '+shared' in spec:
make(*(make_args + ['STATIC=0'])) make(*(make_args + ['STATIC=0']))

View File

@ -15,8 +15,11 @@ class PyGimmik(PythonPackage):
homepage = "https://github.com/PyFR/GiMMiK" homepage = "https://github.com/PyFR/GiMMiK"
pypi = "gimmik/gimmik-2.2.tar.gz" pypi = "gimmik/gimmik-2.2.tar.gz"
maintainers = ["michaellaufer"] maintainers = ["MichaelLaufer"]
version(
"2.3", sha256="c019c85316bcf0d5e84de9b7d10127355dfe8037c0e37f1880a9819ce92b74e1"
)
version( version(
"2.2", sha256="9144640f94aab92f9c5dfcaf16885a79428ab97337cf503a4b2dddeb870f3cf0" "2.2", sha256="9144640f94aab92f9c5dfcaf16885a79428ab97337cf503a4b2dddeb870f3cf0"
) )

View File

@ -15,13 +15,17 @@ class PyPyfr(PythonPackage):
homepage = "http://www.pyfr.org/" homepage = "http://www.pyfr.org/"
pypi = "pyfr/pyfr-1.13.0.tar.gz" pypi = "pyfr/pyfr-1.13.0.tar.gz"
git = "https://github.com/PyFR/PyFR/" git = "https://github.com/PyFR/PyFR/"
maintainers = ["michaellaufer"] maintainers = ["MichaelLaufer"]
# git branches # git branches
version("develop", branch="develop") version("develop", branch="develop")
version("master", branch="master") version("master", branch="master")
# pypi releases # pypi releases
version(
"1.14.0",
sha256="ebf40ce0896cce9ac802e03fd9430b5be30ea837c31224531a6d5fd68f820766",
)
version( version(
"1.13.0", "1.13.0",
sha256="ac6ecec738d4e23799ab8c50dea9bdbd7d37bc971bd33f22720c5a230b8e7b2f", sha256="ac6ecec738d4e23799ab8c50dea9bdbd7d37bc971bd33f22720c5a230b8e7b2f",
@ -31,21 +35,24 @@ class PyPyfr(PythonPackage):
variant("scotch", default=False, description="Scotch for mesh partitioning") variant("scotch", default=False, description="Scotch for mesh partitioning")
variant("cuda", default=False, description="CUDA backend support") variant("cuda", default=False, description="CUDA backend support")
variant("hip", default=False, description="HIP 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 # Required dependencies
depends_on("python@3.9:", type=("build", "run")) depends_on("python@3.9:", type=("build", "run"))
depends_on("py-setuptools", type="build") depends_on("py-setuptools", type="build")
depends_on("py-gimmik@2.2:2", type=('build', 'run')) 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-h5py@2.10:", type=('build', 'run'))
depends_on("py-mako@1.0.0:", 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-mpi4py@3.1.0:", type=('build', 'run'))
depends_on("py-numpy@1.20:+blas", 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-platformdirs@2.2.0:", type=('build', 'run'))
depends_on("py-pytools@2016.2.1:", type=('build', 'run')) depends_on("py-pytools@2016.2.1:", type=('build', 'run'))
depends_on("py-scipy", type=('build', 'run'))
# Optional dependecies # Optional dependencies
depends_on("metis@5.0:", when="+metis", type=('run')) depends_on("py-scipy", when="+scipy", type=('build', 'run'))
depends_on("scotch@6.0:", when="+scotch", type=('run')) depends_on("scotch@6.0:", when="+scotch", type=('run'))
depends_on("cuda@8.0:", when="+cuda", type=('run')) depends_on("cuda@8.0:", when="+cuda", type=('run'))
depends_on("rocblas@4.5.0:", when="+hip", 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'))