spack/var/spack/repos/builtin/packages/amdscalapack/package.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

130 lines
5.1 KiB
Python
Raw Normal View History

# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from llnl.util import tty
from spack.package import *
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
from spack.pkg.builtin.netlib_scalapack import ScalapackBase
class Amdscalapack(ScalapackBase):
"""
ScaLAPACK is a library of high-performance linear algebra routines
for parallel distributed memory machines. It depends on external
libraries including BLAS and LAPACK for Linear Algebra computations.
AMD's optimized version of ScaLAPACK enables using BLIS and
LibFLAME library that have optimized dense matrix functions and
solvers for AMD EPYC processor family CPUs.
LICENSING INFORMATION: By downloading, installing and using this software,
you agree to the terms and conditions of the AMD AOCL-ScaLAPACK license
agreement. You may obtain a copy of this license agreement from
https://www.amd.com/en/developer/aocl/scalapack/eula/scalapack-libraries-4-2-eula.html
https://www.amd.com/en/developer/aocl/scalapack/eula/scalapack-libraries-eula.html
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
"""
_name = "amdscalapack"
2023-04-04 02:21:13 +08:00
homepage = "https://www.amd.com/en/developer/aocl/scalapack.html"
git = "https://github.com/amd/aocl-scalapack"
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
maintainers("amd-toolchain-support")
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
license("BSD-3-Clause-Open-MPI")
version(
"4.2",
sha256="c6e9a846c05cdc05252b0b5f264164329812800bf13f9d97c77114dc138e6ccb",
preferred=True,
)
version("4.1", sha256="b2e51c3604e5869d1faaef2e52c92071fcb3de1345aebb2ea172206622067ad9")
version("4.0", sha256="f02913b5984597b22cdb9a36198ed61039a1bf130308e778dc31b2a7eb88b33b")
version("3.2", sha256="9e00979bb1be39d627bdacb01774bc043029840d542fafc934d16fec3e3b0892")
2021-12-18 01:28:41 +08:00
version("3.1", sha256="4c2ee2c44644a0feec0c6fc1b1a413fa9028f14d7035d43a398f5afcfdbacb98")
version("3.0", sha256="6e6f3578f44a8e64518d276e7580530599ecfa8729f568303ed2590688e7096f")
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
version("2.2", sha256="2d64926864fc6d12157b86e3f88eb1a5205e7fc157bf67e7577d0f18b9a7484c")
depends_on("c", type="build") # generated
depends_on("fortran", type="build") # generated
2021-12-18 01:28:41 +08:00
variant("ilp64", default=False, description="Build with ILP64 support")
conflicts("+ilp64", when="@:3.0", msg="ILP64 is supported from 3.1 onwards")
requires("target=x86_64:", msg="AMD scalapack available only on x86_64")
2021-12-18 01:28:41 +08:00
patch("clang-hollerith.patch", when="%clang@16:")
def patch(self):
# Flang-New gets confused and thinks it finds Hollerith constants
if self.spec.satisfies("%clang@16:"):
filter_file("-cpp", "", "CMakeLists.txt")
2021-12-18 01:28:41 +08:00
def url_for_version(self, version):
vers = "https://github.com/amd/{0}/archive/{1}.tar.gz"
if version >= Version("3.1"):
return vers.format("aocl-scalapack", version)
else:
return vers.format("scalapack", version)
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
def cmake_args(self):
"""cmake_args function"""
2023-07-05 22:04:29 +08:00
args = super().cmake_args()
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
spec = self.spec
if not (
spec.satisfies(r"%aocc@3.2:4.2")
or spec.satisfies(r"%gcc@12.2:13.1")
or spec.satisfies(r"%clang@15:17")
):
tty.warn(
"AOCL has been tested to work with the following compilers "
"versions - gcc@12.2:13.1, aocc@3.2:4.2, and clang@15:17 "
"see the following aocl userguide for details: "
"https://www.amd.com/content/dam/amd/en/documents/developer/version-4-2-documents/aocl/aocl-4-2-user-guide.pdf"
)
if spec.satisfies("%gcc@10:"):
args.extend(["-DCMAKE_Fortran_FLAGS={0}".format("-fallow-argument-mismatch")])
if spec.satisfies("%clang@16:"):
args.extend(["-DCMAKE_Fortran_FLAGS={0}".format("-cpp -fno-implicit-none")])
if spec.satisfies("@2.2"):
args.extend(
[
"-DUSE_DOTC_WRAPPER:BOOL=%s"
% ("ON" if spec.satisfies("%aocc ^amdblis") else "OFF")
]
)
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
2021-12-18 01:28:41 +08:00
# -DENABLE_ILP64:BOOL=ON
args.extend([self.define_from_variant("ENABLE_ILP64", "ilp64")])
# -DUSE_F2C:BOOL=ON
args.extend([self.define("USE_F2C", spec.satisfies("@:3.0"))])
if self.spec.satisfies("%clang@16:") or self.spec.satisfies("%aocc@4.1.0:"):
c_flags = []
c_flags.append("-Wno-implicit-function-declaration")
c_flags.append("-Wno-deprecated-non-prototype")
c_flags.append("-Wno-incompatible-pointer-types")
args.append(self.define("CMAKE_C_FLAGS", " ".join(c_flags)))
# link libflame library
args.extend(["-DLAPACK_LIBRARIES={0}".format(self.spec["lapack"].libs)])
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457) * [NEW] Added amdfftw, amdlibflame and amdscalapack recipes Updated base fftw, libflame and netlib-scalapack recipes to accommodate the above listed AMD Optimizing CPU Libraries which are a set of numerical routines optimized for AMD platforms. Updated amdblis spack recipe amdblis: 1. updated with amdblis 2.2 release amdfftw: 1. "--enable-single" now work as synonym for "--enable-float" amdlibflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag Libflame: 1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag 2. Corrected invocation of "enable_or_disable('threads')" Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f * Added amd-toolchain-support as maintainers Added team github account amd-toolchain-support as maintainers for all the recipes owned by AMD Optimizing CPU Libraries (AOCL) team Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582 * Incorporated review comments Updated packages.yaml with aocl components Handled Flake8 test failures Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb * Readded accidental removal of stream recipe amdfftw: 1. Updated the aocc clang selection as per spack standards fftw: 1. Currently apple-clang section is redundant, already it is handled in the conflict checks. Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846 * Fix for style and docs/validate (pull_request) test unnumbered format placeholders from {} to {0} Change-Id: If67a3374177ec067573e5504462d257712fafc05 * changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc Change-Id: I7ae29c978fff16e37773913f14c84df232499763 * Removed 'single' variant from amdfftw recipe Instead of conflict for apple-clang + openmp, handled this senario via below available feature: depends_on('llvm-openmp', when='%apple-clang +openmp') Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc * Added relevant info for users who prefers to use single precision Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6 * Minor changes on fftw, amdfftw and libflame amdfftw: 1. Removed escape symbol to the single quotes 2. Rewording the conflict line from Recommended to Required fftw: 1. Reorded to following recommended sections: versions, variants, dependencies, providers, patches libflame: 1. Added provides entry for 5.1.0 version Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476 * Removed single quote from amdfftw docstring to fix style failures Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-11-01 00:57:17 +08:00
args.extend(
[
"-DLAPACK_FOUND=true",
"-DCMAKE_C_COMPILER=%s" % spec["mpi"].mpicc,
"-DCMAKE_Fortran_COMPILER=%s" % spec["mpi"].mpifc,
]
)
return args
def setup_dependent_run_environment(self, env, dependent_spec):
if self.spec.external:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)