Skip to content

gromacs: add sve variant on aarch64#35614

Merged
alalazo merged 1 commit intospack:developfrom
annop-w:gromacs
Mar 8, 2023
Merged

gromacs: add sve variant on aarch64#35614
alalazo merged 1 commit intospack:developfrom
annop-w:gromacs

Conversation

@annop-w
Copy link
Copy Markdown
Contributor

@annop-w annop-w commented Feb 22, 2023

No description provided.

junghans
junghans previously approved these changes Feb 22, 2023
@junghans junghans enabled auto-merge (squash) February 22, 2023 13:51
auto-merge was automatically disabled February 22, 2023 16:52

Head branch was pushed to by a user without write access

Copy link
Copy Markdown
Contributor

@marvinbernhardt marvinbernhardt left a comment

Choose a reason for hiding this comment

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

lgtm

Edit (sorry, not fully awake yet): We don't have variants for all the other SIMD settings. Maybe we shouldn't introduce one for this one and just enable when available.

@annop-w
Copy link
Copy Markdown
Contributor Author

annop-w commented Feb 24, 2023

lgtm

Edit (sorry, not fully awake yet): We don't have variants for all the other SIMD settings. Maybe we shouldn't introduce one for this one and just enable when available.

My concern is that forcing SVE on SVE enabled machines might not always be the best option. Having this as a variant gives users this flexibility to test between NEON and SVE. The variant is anyway enabled only on V1 and A64FX and it should not show up with spack info gromacs on other machines (although testing on N1 reveals that it does which should be an incorrect behaviour, on M2 mac it does not show up). What do you think ?

@marvinbernhardt
Copy link
Copy Markdown
Contributor

(I have no experience with ARM NEON or SVE)

There are more specific targets, that could be used, e.g.:

ARM - aarch64
    cortex_a72  neoverse_n1  neoverse_v1

Apple - aarch64
    m1  m2

Since we currently don't let the user decide which SIMD to use on non-ARM it might be best to keep that pattern. Would it be possible to use the specific architecture (e.g. m2) to decide between NEON and SVE?

@annop-w
Copy link
Copy Markdown
Contributor Author

annop-w commented Feb 24, 2023

As I mentioned not adding it as a variant means that on SVE enabled targets, which are neoverse_v1 and a64fx available in spack currently, we force users to use SVE on these two targets. In my opinion, this could mean that users do not get the best performance possible on these two targets because the SVE version might not be as optimized as the NEON version ?? Having the variant at least allows users to test them out.

@marvinbernhardt
Copy link
Copy Markdown
Contributor

In general, the same could be argued for some x64 processors, where sometimes the highest SIMD instruction set is not optimal. But probably this is a larger issue on ARM, justifying an own variant. So in the end, I'm ok with merging.

@annop-w
Copy link
Copy Markdown
Contributor Author

annop-w commented Mar 7, 2023

@spackbot run pipeline

@spackbot-app
Copy link
Copy Markdown

spackbot-app bot commented Mar 7, 2023

I've started that pipeline for you!

@annop-w
Copy link
Copy Markdown
Contributor Author

annop-w commented Mar 8, 2023

@alalazo Could you please take a look at this one too ? I think this is ready to go in. Thank you.

@alalazo alalazo merged commit 983a56e into spack:develop Mar 8, 2023
@annop-w annop-w deleted the gromacs branch March 10, 2023 09:25
jmcarcell pushed a commit to key4hep/spack that referenced this pull request Apr 13, 2023
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.

4 participants