Commit Graph

51 Commits

Author SHA1 Message Date
Todd Gamblin
3118647802
Update copyright year to 2024 (#41919)
It was time to run `spack license update-copyright-year` again.
2024-01-02 09:21:30 +01:00
Aiden Grossman
19c20563cc Initial License Checkin
This patch adds license information for about 5,300 packages from automated sources.
The license information was obtained from Alpine Linux and PyPI and processed
using tooling available in https://github.com/boomanaiden154/spack-license-utils.
The license field was added in after all other directives in an automated fashion.

Note that while this license information is probably fairly accurate, it is not
guaranteed to be accurate. In addition some of the license strings from Alpine Linux
might not be valid SPDX license strings. Invalid SPDX identifiers can be picked up
and fixed once we have validation/parsing infrastructure in place for the solver,
and issues can be fixed as they come up.
2023-12-27 11:20:45 -08:00
Brian Van Essen
1fdb6a3e7e
Updating the LBANN, Hydrogen, and DiHydrogen recipes (#41390)
* Updating the LBANN, Hydrogen, and DiHydrogen recipes for both new
variants and to make sure that RPATHs are properly setup.

Co-authored-by: bvanessen <bvanessen@users.noreply.github.com>
2023-12-05 09:31:51 +01:00
Brian Van Essen
7a4df732e1
DiHydrogen, Hydrogen, and Aluminum CachedCMakePackage (#39714) 2023-11-09 19:08:37 +01:00
Massimiliano Culpo
d84c6ad29e
cmake build system: make "generator" a variant (#35552) 2023-03-18 16:39:04 +01:00
Adam J. Stewart
603569e321
Style: black 23, skip magic trailing comma (#35351)
* Style: black 23, skip magic trailing commas

* isort should use same line length as black

* Fix unused import

* Update version of black used in CI

* Update new packages

* Update new packages
2023-02-16 23:06:12 -06:00
Massimiliano Culpo
ddecf07045
Use the maintainers directive in all packages (#35201) 2023-02-01 21:07:25 -08:00
Harmen Stoppels
fce95e2efb
license year bump (#34921)
* license bump year
* fix black issues of modified files
* mypy
* fix 2021 -> 2023
2023-01-18 14:30:17 -08:00
Brian Van Essen
6c5a7fefd6
Fixed a bad variant when statement for including cuDNN. (#33595) 2022-10-28 13:21:50 -06:00
Brian Van Essen
6408b51def
Support ROCm backing in DiHydrogen (#33563)
* Added support for building the DiHydrogen package and LBANN extensions
to DiHydrogen with ROCm libraries.

Fixed a bug on Cray systems where CMake didn't try hard enough to find
an MPI-compatible compiler wrapper.  Make it look more.

Added support for the roctracer package when using ROCm libraries.

* Fixed how ROCm support is defined for pre-v0.3 versions.
2022-10-27 21:19:56 +02:00
Todd Gamblin
f52f6e99db black: reformat entire repository with black 2022-07-31 13:29:20 -07:00
Brian Van Essen
8965d8f661
lbann, aluminum, hydrogen,dihydrogen: explicit flags to pass the AMD GPU architecture into CMake (#31326) 2022-06-28 09:45:00 +02:00
Brian Van Essen
249c90f909
Added the ecp and radiuss tags to the LBANN software stack packages. (#31188) 2022-06-17 21:25:50 +00:00
Brian Van Essen
926e311f3c
dihydrogen: propagate cuda_arch to nvshmem (#30886) 2022-06-06 14:38:58 +02:00
Tom Scogland
18c2f1a57a
refactor: packages import spack.package explicitly (#30404)
Explicitly import package utilities in all packages, and corresponding fallout.

This includes:

* rename `spack.package` to `spack.package_base`
* rename `spack.pkgkit` to `spack.package`
* update all packages in builtin, builtin_mock and tutorials to include `from spack.package import *`
* update spack style
  * ensure packages include the import
  * automatically add the new import and remove any/all imports of `spack` and `spack.pkgkit`
    from packages when using `--fix`
  * add support for type-checking packages with mypy when SPACK_MYPY_CHECK_PACKAGES
    is set in the environment
* fix all type checking errors in packages in spack upstream
* update spack create to include the new imports
* update spack repo to inject the new import, injection persists to allow for a deprecation period

Original message below:
 
As requested @adamjstewart, update all packages to use pkgkit.  I ended up using isort to do this,
so repro is easy:

```console
$ isort -a 'from spack.pkgkit import *' --rm 'spack' ./var/spack/repos/builtin/packages/*/package.py
$ spack style --fix
```

There were several line spacing fixups caused either by space manipulation in isort or by packages
that haven't been touched since we added requirements, but there are no functional changes in here.

* [x] add config to isort to make sure this is maintained going forward
2022-05-28 12:55:44 -04:00
Brian Van Essen
433d404a93
lbann (and related stack): avoid bug in cmake 3.23.0 (#30019) 2022-04-12 08:56:48 +02:00
Brian Van Essen
ff7230c0cf
lbann: allow unsupported compiler (#29417) 2022-03-09 19:47:55 +01:00
Brian Van Essen
2ac11812ba
lbann, dihydrogen: removing nice to have Python packages (#29302)
Recipes that are not actually required for LBANN or DiHydrogen to
build. These should be concretized within the same environment or
installed via PIP using the same Python that installed LBANN.
Removing these will help eliminate build time failures that are
actually associated with Python tools, not LBANN.
2022-03-03 18:12:14 +00:00
Brian Van Essen
fc7b7cfeab
LBANN SW stack packages: gcc-toolchain and clang support (#28769)
* Added support to LBANN, Hydrogen, DiHydrogen, and Aluminum to capture
  a gcc-toolchain cxxflags argument and pass it to a CMAKE_CUDA_FLAG
  argument when set.  This helps deal with compiling with clang on
  systems with old base gcc installations.
* Added a dependency on py-scipy when enabling tests on LBANN.
* Updated the C++ standard for Hydrogen to C++17.
* Added a new variant +apps to enable (or disable) python packages that
  are used by applications in the LBANN repo, but are not strictly
  required for building and using LBANN.
* Added a run time dependency for both py-pytest and py-scipy so that
  they are activated in any environment.
* Added support for building LBANN, Hydrogen, and DiHydrogen with the
  IBM ESSL BLAS library.  This requires explicit identification of
  additional LAPACK libraries, since ESSL does not implement LAPACK, but
  is found by CMake.
* Fixed a bug in the LBANN dependency on OpenCV for Power architectures.
  The +powerpc variant is only required for GCC toolchains and causes
  Clang to break. Switched to only enabling when using %gcc on power.
2022-02-11 17:33:15 -08:00
Todd Gamblin
93377942d1 Update copyright year to 2022 2022-01-14 22:50:21 -08:00
Harmen Stoppels
b9e72557e8
Remove .99 from version ranges (#26422)
In most cases, .99 can be omitted thanks to #26402 .
2021-10-03 09:09:02 -04:00
Tim Moon
2de116d285
DiHydrogen: Specify required NVSHMEM variants (#26384) 2021-10-03 08:30:27 -04:00
Brian Van Essen
b909560ed5
Added CMake command to export compiler directories to support emacs LSP mode. (#26118) 2021-09-26 15:47:46 +02:00
Brian Van Essen
fa92482675
dihydrogen package: add missing dependency (#25896) 2021-09-22 12:03:15 -07:00
Brian Van Essen
09fa9cdaae
C++17 support for LBANN and HIP (#25406)
* Added logic to explicitly pass the c++17 language flags to the
HIP/ROCm software stack to ensure that HIP complies with the C++17
requirements.
2021-08-16 09:47:27 +02:00
Brian Van Essen
128d788363
Changed the LBANN software stack to not explicitly set the Host (#25351)
Transfer protocol in the Aluminum library.  If required the Host
Transfer variant +ht should be explicity set.
2021-08-11 09:12:59 +02:00
Brian Van Essen
adb507bdd9
Added support for using the Cray LibSci BLAS/LAPACK/ScaLAPACK library. (#25124) 2021-07-28 15:14:58 -07:00
romerojosh
7339f2d476
Fix LBANN and related packages CMake CUDA arch flag (#25062) 2021-07-26 09:16:38 +02:00
Todd Gamblin
24c01d57cf
imports: sort imports everywhere in Spack (#24695)
* fix remaining flake8 errors

* imports: sort imports everywhere in Spack

We enabled import order checking in #23947, but fixing things manually drives
people crazy. This used `spack style --fix --all` from #24071 to automatically
sort everything in Spack so PR submitters won't have to deal with it.

This should go in after #24071, as it assumes we're using `isort`, not
`flake8-import-order` to order things. `isort` seems to be more flexible and
allows `llnl` mports to be in their own group before `spack` ones, so this
seems like a good switch.
2021-07-08 22:12:30 +00:00
Brian Van Essen
3356c5fc71
lbann, aluminum, hydrogen, dihydrogen: pass cuda_arch to cmake (#24074) 2021-06-02 10:02:23 +02:00
Brian Van Essen
fd9918ab6f
Removed unnecessary code to put cuda_arch in DiHydrogen (#23158)
These were deprecated when the custom cuda_arch list was
removed.  Also fixed up the Aluminum dependencies for Hydrogen and
DiHydrogen.  Turns out that Aluminum v0.6.0 didn't have a correct
version in CMake and thus the interaction with older versions of
Hydrogen and DiHydrogen needed to be corrected.
2021-04-20 16:54:12 -07:00
Brian Van Essen
9d42381d38
Bugfixes in LBANN software stack identified by clingo (#22554)
* Fixed a bug in the DiHydrogen package where the variant legacy was
changed to distconv and wasn't fully propagated.  Cleaned up the
openmp variants on the blas library packages in DiHydrogen and
Elemental.  Extended support for Aluminum v1.0 in LBANN, Hydrogen, and
DiHydrogen.  Fixed a when clause in the LBANN dependencies.

* Removed the upper range limit for the Aluminum library dependence

* Update var/spack/repos/builtin/packages/dihydrogen/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-30 02:25:56 +00:00
Brian Van Essen
8a8fad8474
LBANN software stack: new versions and dependencies (#22234)
Updated the versions for DiHydrogen and Aluminum. Added new constraints on versions of Aluminum that are used across the software stack.  Cleaned up the dependency on DiHydrogen for LBANN.
2021-03-12 10:43:13 -07:00
Brian Van Essen
f9ff80e213
lbann: updated python dependencies and new variants (#21863)
* Made DiHydrogen a required dependencies on newer versions of LBANN.
Added an explicit variant for enabling Boost-dependent callbacks.
Updated the separation for embedded Python and the Python front end
code and associated dependencies.

* Bugfix on ROCm include in DiHydrogen
2021-02-23 17:09:46 +00:00
Brian Van Essen
c9246af112
Adding support for ROCm for the LBANN software stack. (#21716)
* Also removed LBANN CUDA CMake flags that are set by the
version of Hydrogen that is compiled against.

* Updated recipes to use HWLOC 2.3 with ROCm to enable
topology awareness.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-02-22 23:35:58 +01:00
Brian Van Essen
23e22ae623
Updates to the LBANN software stack (#21733)
Set the minimun C++ standard for LBANN, Hydrogen, and DiHydrogen to
C++17.  The minumim C++ standard for Aluminum is C++14.  Add new
versions for Aluminum, Hydrogen, and DiHydrogen.  Added support for
high performance linkers in LBANN recipe (gold and lld).  Added
variants to LBANN for enabling embedded Python support independently
from the Python front end.
2021-02-19 09:32:17 +01:00
Brian Van Essen
46153a8201
NVSHMEM package (#21279) 2021-01-27 09:49:53 +01:00
Todd Gamblin
a8ccb8e116 copyrights: update all files with license headers for 2021
- [x] add `concretize.lp`, `spack.yaml`, etc. to licensed files
- [x] update all licensed files to say 2013-2021 using
      `spack license update-copyright-year`
- [x] appease mypy with some additions to package.py that needed
      for oneapi.py
2021-01-02 12:12:00 -08:00
Brian Van Essen
6c00ebab16
Add lbann cmake flags (#20452)
* Adding support for the CMake flags in LBANN that are missing.

* Added new flag to OpenCV dependency and removed negative variants
since OpenCV no longer turns on everything by default.  Removed CMake
flags in LBANN that have been deprecated.

* Removed type='build' flags from dependencies so that they get linked
into a environment's view.

* Removed type='build' flags from dependencies so that they get linked
into a environment's view.  Fixed DiHydrogen variant to enable
DistConv feature, renamed to +distconv from +legacy.  Added conflicts
line to indicated that DistConv and ROCm don't work with +half
support.

* Fixed Flake8 and cleaned up ordering of variants.

* Flake8

* Backed out changes to not mark and cmake and ninja as build
dependencies, which was introduced to make sure that they appear in
a spack environment.

* Backed out changes to not mark doc related packages as build
dependencies, which was introduced to make sure that they appear
in a spack environment.

* Fixed how recipe communicates the intent to build and run tests to the
package CMake.
2020-12-24 16:46:12 -06:00
Brian Van Essen
b7aea9f3b1
Propagate cuda_arch downstream from LBANN, Hydrogen and DiHydrogen (#20345) 2020-12-14 10:14:49 +01:00
Brian Van Essen
55ec18a580
Bugfixes for lbann sw stack (#19903)
* Added guard for setting CUB_DIR to only when cuda variant is true

* Added support for OpenMP on OSX platforms

* Updated the way that LBANN, Hydrogen, and DiHydrogen handle
apple-clang with OpenMP and Clang installed on OS X via brew.

* Fixed bug in spec resolution

* Fixed merge conflict

* Fixed typo

* Fixed flake8
2020-11-14 18:59:12 -06:00
Brian Van Essen
9cd0f00607
Added code to help DiHydrogen find cuDNN and CUB (#19783)
* Added code to help DiHydrogen find cuDNN and CUB

* Cleaning up dependencies on CUB and adding guards for when newer
versions of CUDA include CUB and it should be excluded.

* Changed Hydrogen to disable half support by default.

* Have LBANN force Hydrogen and DiHydrogen to build without half when the variant is disabled.

* Added explicit variants to enusre that if LBANN is build without Cuda,
Aluminum, or Half support, it enforces those constraints for Hydrogen
and DiHydrogen.  Cleaned up the use of Python extend versus append in
LBANN and DiHydrogen recipes.

* Fixed Flake8
2020-11-07 14:09:00 -06:00
Brian Van Essen
16c8cdaef7
LBANN update HWLOC versions (#19683)
* Updates in LBANN an Aluminum code now allow working with versions
HWLOC 1.11.x and 2.x and up.

* Updating the minimum CMake version to address a pending PR in LBANN
that will require C++17 support and needs CMake to properly separate
the compiler flags from nvcc.

* Clarified the support for different versions of HWLOC in LBANN
2020-11-05 16:28:27 -06:00
Brian Van Essen
7dea225fce
Update lbann version and simplify installation (#19579)
* Added hash values for LBANN v0.101 and Hydrogen v1.5.0.  Updated the
LBANN package to be more successful in resolving a legal configuration
of MPI and HWLOC packages.  This required the removal of the MPI
virtual package since it is unable to resolve dependencies with
minimum version requirements. As a result to enable a reasonable
install line for LBANN this requires explicit forwarding of MPI
variants to Hydrogen and Aluminum.  Due to the lack of variant
forwarding, there are many explicitly replicated dependencies for both
LBANN and Hydrogen.  Fixed the error in LBANN where gpu variant was
replaced by the cuda variant, but not all dependencies were fixed.

* Fixed the minumum cuDNN version for newer versions of LBANN.

* Added explicit versioning of the MPI libraries for DiHydrogen to avoid
all of the conflicts with minimum required versions of the OpenMPI library.

* Removed explicit MPI versions and went back to using the MPI virtual
dependency.  Updated construction of variant forwarding to use
iterative construction of constraints and variants.  This exacerbates
the challenges with backtracking in the current concretizer, but
should be fixed in the new concretizer.

* Added support for including the DiHydrogen library in LBANN as well as
support for the distributed convolution (DistConv) parallel
algorithms.  Also include support for building with half precision.

* Moving dependencies around

* Added conflict statement to ensure that the variant dihydrogen is
required for distconv.

* Removed the preferred field

* Fixed Flake8 and cuDNN version bounds
2020-10-30 14:51:10 -05:00
Brian Van Essen
d2da7e6671
Added initial version hash (#19053) 2020-10-02 10:56:06 -05:00
Brian Van Essen
87dc324f36
Support older cuda arch capabilties. (#18597) 2020-09-09 21:42:34 -05:00
Brian Van Essen
28ef5c0e27
dihydrogen, hydrogen: dependency on CUB is conditional on CUDA version (#18427)
In CUDA 11, CUB is integrated into the CUDA library.
2020-09-01 05:42:21 +02:00
Brian Van Essen
aa79d565b3
DiHydrogen: adding blas and associated variants (#17911) 2020-08-10 07:31:41 +02:00
Brian Van Essen
54dc871524
Renamed the aluminum variant for thhe intra-node RMA functions. (#17861) 2020-08-04 12:52:59 -05:00
Brian Van Essen
46e7fbe120
LBANN: add versions, update CUDA support and dependencies (#17813)
* Update LBANN, Hydrogen, Aluminum to inherit CudaPackage
* Update CMake constraints: LBANN, Hydrogen, and Aluminum now require
  cmake@3.16.0: (better support for pthreads with nvcc)
* Aluminum: add variants for host-enabled MPI and RMA features in a
  MPI-GPU RDMA-enabled library
* NCCL: add versions 2.7.5-1, 2.7.6-1, and 2.7.8-1
* Hydrogen: add version 1.4.0
* LBANN: add versions 0.99 and 0.100
* Aluminum: add versions 0.4.0 and 0.5.0
2020-07-31 13:53:51 -07:00