Skip to content

CEED v4.0 release#22735

Merged
tzanio merged 29 commits intodevelopfrom
packages/ceed-4.0
Jun 3, 2021
Merged

CEED v4.0 release#22735
tzanio merged 29 commits intodevelopfrom
packages/ceed-4.0

Conversation

@v-dobrev
Copy link
Copy Markdown
Member

@v-dobrev v-dobrev commented Apr 1, 2021

Version 4.0 of the CEED package collection.

Disabling OCCA because backend updates did not make this release and
there are some known bugs so most users won't have reason to use OCCA.

CEED/libCEED#688
v-dobrev and others added 2 commits April 1, 2021 14:58
* MFEM package updates

* mfem: flake8

* [mfem] Various fixes and tweaks.

[arpack-ng] Add a patch to fix building with IBM XL Fortran.

[libceed] Fix building with IBM XL C/C++.

[pumi] Add C++11 flag for version 2.2.3.

* [mfem] Fix the shared CUDA build.

Reported by: @MPhysXDev

* [mfem] Fix a TODO item

* [mfem] Tweak the AmgX dependencies

* [suite-sparse] Fix the version of the mpfr dependency

* MFEM: add initial HIP support using the ROCmPackage.

* MFEM: add 'slepc' variant.

* MFEM: update the patch for v4.2 for SLEPc.

* mfem: apply 'mfem-4.2-slepc.patch' just to v4.2.
[laghos] Add laghos version 3.1 based on the latest commit in
         the repository; this version works with mfem v4.2.

[ceed] For ceed v4.0 use laghos v3.1.
@v-dobrev
Copy link
Copy Markdown
Member Author

v-dobrev commented Apr 3, 2021

Latest commit worked fine on Lassen with gcc v8.3.1 with

./bin/spack install ceed+cuda ^magma cuda_arch=70 ^mfem cuda_arch=sm_70

@v-dobrev
Copy link
Copy Markdown
Member Author

v-dobrev commented Apr 7, 2021

The NekRS package seems to have both hip (explicitly defined but not used) and rocm (inherited from ROCmPackage) variants which is redundant. Also, depends_on('hip', when='+rocm') is unnecessary since it is inherited from ROCmPackage, see https://github.com/spack/spack/blob/develop/lib/spack/spack/build_systems/rocm.py.

Ping: @thilinarmtb.

On a similar topic: I think wee should add a hip (or rocm?) variant to occa. I also added relevant TODO comments about this in the ceed and libceed packages.

Ping: @dmed256.

@v-dobrev
Copy link
Copy Markdown
Member Author

v-dobrev commented May 3, 2021

TODO:

  • In petsc, libceed, and ceed: replace the +hip variant with +rocm by inheriting from ROCmPackage.
  • In mfem: replace the dependency 'libceed+hip' with 'libceed+rocm'.

depends_on('[email protected]~rocm', when='@4.0.0~rocm')
for target in ROCmPackage.amdgpu_targets:
depends_on('[email protected]+rocm amdgpu_target={0}'.format(target),
when='@4.0.0+rocm amdgpu_target={0}'.format(target))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@becker33 Is this what you meant when you said (on Slack) that the variant needs to be forwarded to each dependent package? The spec makes sense with this change, though it's tedious going and all the BundlePackages would need this treatment.

       'cuda_arch' values should not include the 'sm_' prefix.
       Also, propagate 'cuda_arch' and 'amdgpu_target' variants
       to enabled dependencies.
if '+cuda' in spec:
cxxflags += [
'-x=cu --expt-extended-lambda -arch=%s' % cuda_arch,
'-x=cu --expt-extended-lambda -arch=sm_%s' % cuda_arch,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Todd describes this flag as being handled automatically by the compiler wrappers when using CudaPackage.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a flag for nvcc -- I don't think spack has a wrapper for that -- unless that is a recent addition.

@v-dobrev
Copy link
Copy Markdown
Member Author

The following install worked fine on Lassen (with gcc-8.3.1 and various other customizations in compilers.yaml and packages.yaml):

./bin/spack install ceed+cuda cuda_arch=70

@v-dobrev v-dobrev removed the WIP label May 23, 2021
@v-dobrev v-dobrev requested review from jedbrown and tzanio May 23, 2021 05:32
jedbrown
jedbrown previously approved these changes May 23, 2021
Copy link
Copy Markdown
Contributor

@jedbrown jedbrown left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. @balay may want to review the PETSc changes.

@jedbrown jedbrown requested a review from balay May 23, 2021 05:43
tzanio
tzanio previously approved these changes May 23, 2021
Copy link
Copy Markdown
Contributor

@tzanio tzanio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @v-dobrev, @jedbrown and @thilinarmtb !

@tzanio
Copy link
Copy Markdown
Contributor

tzanio commented May 31, 2021

We plan to merge this on Wednesday (06/02/21). Please speak up if you have feedback or concerns.

@tzanio
Copy link
Copy Markdown
Contributor

tzanio commented Jun 3, 2021

@jedbrown, can you resolve the conflict in petsc so we can merge?

Resolve petsc conflict on new hwloc and openmp variants.
@jedbrown jedbrown dismissed stale reviews from tzanio and themself via ee65885 June 3, 2021 17:17
Copy link
Copy Markdown
Contributor

@jedbrown jedbrown left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be good to merge once tests pass.

@tzanio tzanio merged commit e4a559a into develop Jun 3, 2021
@tzanio tzanio deleted the packages/ceed-4.0 branch June 3, 2021 18:32
RikkiButler20 pushed a commit to RikkiButler20/spack that referenced this pull request Jun 9, 2021
* petsc: add hip variant

* libceed: add 0.8, disable occa by default, and let autodetect AVX

Disabling OCCA because backend updates did not make this release and
there are some known bugs so most users won't have reason to use OCCA.

CEED/libCEED#688

* WIP: ceed: 4.0 release

* MFEM package updates (spack#19748)

* MFEM package updates

* mfem: flake8

* [mfem] Various fixes and tweaks.

[arpack-ng] Add a patch to fix building with IBM XL Fortran.

[libceed] Fix building with IBM XL C/C++.

[pumi] Add C++11 flag for version 2.2.3.

* [mfem] Fix the shared CUDA build.

Reported by: @MPhysXDev

* [mfem] Fix a TODO item

* [mfem] Tweak the AmgX dependencies

* [suite-sparse] Fix the version of the mpfr dependency

* MFEM: add initial HIP support using the ROCmPackage.

* MFEM: add 'slepc' variant.

* MFEM: update the patch for v4.2 for SLEPc.

* mfem: apply 'mfem-4.2-slepc.patch' just to v4.2.

* ceed: apply 'spack style'

* [mfem] Add a patch for mfem v4.2 to work with petsc v3.15.0.

[laghos] Add laghos version 3.1 based on the latest commit in
         the repository; this version works with mfem v4.2.

[ceed] For ceed v4.0 use laghos v3.1.

* [libceed] Explicitly set 'CC_VENDOR=icc' when using 'intel'
          compiler.

* [mfem] Allow pumi >= 2.2.3 with mfem >= 4.2.0.

[ceed] Use pumi v2.2.5 with ceed v4.0.0.

* [ceed] Explicitly use occa v1.1.0 with ceed v4.0.0.
       Use [email protected]+rocm with [email protected]+mfem+hip.

* [ceed] Add NekRS v21 as a dependency for ceed v4.0.0.

* [ceed] Fix NekRS version: 21 --> 21.0

* [ceed] Propagate +cuda variant to petsc for ceed v4.0.

* [mfem] Propagate '+rocm' variant to some other packages.

* [ceed] Use +rocm variant of nekrs instead of +hip.

* [ceed] Do not enable magma with [email protected]+hip.

* [libceed] Fix hip build with [email protected].

* [laghos] For v3.1, use the release .tar.gz file instead of commit.

* Remove cuda & hip variants as they are inherited

* [ceed] Remove comments and FIXMEs about 'magma+hip'.

* [ceed] [libceed] Remove TODOs about occa + hip.

* libceed: use ROCmPackage and +rocm

* petsc: use ROCmPackage for HIP

* libceed, petsc: use CudaPackage

* ceed: forward cuda_arch and amdgpu_target

* [mfem] Use Spack's CudaPackage as a base class; as a result,
       'cuda_arch' values should not include the 'sm_' prefix.
       Also, propagate 'cuda_arch' and 'amdgpu_target' variants
       to enabled dependencies.

* petsc: variant is +rocm, package name is hip

Co-authored-by: Jed Brown <[email protected]>
Co-authored-by: Thilina Rathnayake <[email protected]>
RikkiButler20 pushed a commit to RikkiButler20/spack that referenced this pull request Jun 11, 2021
* petsc: add hip variant

* libceed: add 0.8, disable occa by default, and let autodetect AVX

Disabling OCCA because backend updates did not make this release and
there are some known bugs so most users won't have reason to use OCCA.

CEED/libCEED#688

* WIP: ceed: 4.0 release

* MFEM package updates (spack#19748)

* MFEM package updates

* mfem: flake8

* [mfem] Various fixes and tweaks.

[arpack-ng] Add a patch to fix building with IBM XL Fortran.

[libceed] Fix building with IBM XL C/C++.

[pumi] Add C++11 flag for version 2.2.3.

* [mfem] Fix the shared CUDA build.

Reported by: @MPhysXDev

* [mfem] Fix a TODO item

* [mfem] Tweak the AmgX dependencies

* [suite-sparse] Fix the version of the mpfr dependency

* MFEM: add initial HIP support using the ROCmPackage.

* MFEM: add 'slepc' variant.

* MFEM: update the patch for v4.2 for SLEPc.

* mfem: apply 'mfem-4.2-slepc.patch' just to v4.2.

* ceed: apply 'spack style'

* [mfem] Add a patch for mfem v4.2 to work with petsc v3.15.0.

[laghos] Add laghos version 3.1 based on the latest commit in
         the repository; this version works with mfem v4.2.

[ceed] For ceed v4.0 use laghos v3.1.

* [libceed] Explicitly set 'CC_VENDOR=icc' when using 'intel'
          compiler.

* [mfem] Allow pumi >= 2.2.3 with mfem >= 4.2.0.

[ceed] Use pumi v2.2.5 with ceed v4.0.0.

* [ceed] Explicitly use occa v1.1.0 with ceed v4.0.0.
       Use [email protected]+rocm with [email protected]+mfem+hip.

* [ceed] Add NekRS v21 as a dependency for ceed v4.0.0.

* [ceed] Fix NekRS version: 21 --> 21.0

* [ceed] Propagate +cuda variant to petsc for ceed v4.0.

* [mfem] Propagate '+rocm' variant to some other packages.

* [ceed] Use +rocm variant of nekrs instead of +hip.

* [ceed] Do not enable magma with [email protected]+hip.

* [libceed] Fix hip build with [email protected].

* [laghos] For v3.1, use the release .tar.gz file instead of commit.

* Remove cuda & hip variants as they are inherited

* [ceed] Remove comments and FIXMEs about 'magma+hip'.

* [ceed] [libceed] Remove TODOs about occa + hip.

* libceed: use ROCmPackage and +rocm

* petsc: use ROCmPackage for HIP

* libceed, petsc: use CudaPackage

* ceed: forward cuda_arch and amdgpu_target

* [mfem] Use Spack's CudaPackage as a base class; as a result,
       'cuda_arch' values should not include the 'sm_' prefix.
       Also, propagate 'cuda_arch' and 'amdgpu_target' variants
       to enabled dependencies.

* petsc: variant is +rocm, package name is hip

Co-authored-by: Jed Brown <[email protected]>
Co-authored-by: Thilina Rathnayake <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants