Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile for Neoverse N1 on Linaro's Armv8 bots that are on Mt Jade hardware #354

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

DavidSpickett
Copy link
Contributor

@DavidSpickett DavidSpickett commented Jan 10, 2025

This reflects the host hardware, rather than the limited subset of features on the Cortex-A57.

$ lscpu
Architecture:            aarch64
  CPU op-mode(s):        32-bit, 64-bit
<...>
Vendor ID:               ARM
  Model name:            Neoverse-N1
<...>
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid
                         asimdrdm lrcpc dcpop asimddp

I have also confirmed that the Neoverse V1 (Note: V not N) that is used for Graviton is a superset of these features.

https://github.com/aws/aws-graviton-getting-started/blob/main/c-c%2B%2B.md#enabling-arm-architecture-specific-features

So if we have to move these builds to Graviton 3 at short notice, this will still work (Graviton 4 also ok for AArch64, but it drops the AArch32 mode).

…hardware

This reflects the host hardware, rather than the limited subset of features
on the Cortex-A57.

```
$ lscpu
Architecture:            aarch64
  CPU op-mode(s):        32-bit, 64-bit
<...>
Vendor ID:               ARM
  Model name:            Neoverse-N1
<...>
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid
                         asimdrdm lrcpc dcpop asimddp
```

I have also confirmed that the Neoverse V1 (Note: V not N) that is
used for Graviton is a superset of these features.

https://github.com/aws/aws-graviton-getting-started/blob/main/c-c%2B%2B.md#enabling-arm-architecture-specific-features

So if we have to move these builds to Graviton 3 or 4 at short notice,
the existing configuration will work.
@DavidSpickett DavidSpickett requested review from omjavaid, leandron and luporl and removed request for leandron January 10, 2025 14:40
@DavidSpickett
Copy link
Contributor Author

Requested / inspired by @omjavaid in a previous review.

We do have single stage bots on Mt Jade, but we do not set a specific CPU.

I tested these settings by doing a 2 stage build including flang and mlir. With check-all and test suite for both stages, found no problems.

Copy link
Contributor

@luporl luporl left a comment

Choose a reason for hiding this comment

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

LGTM.

Copy link
Contributor

@omjavaid omjavaid left a comment

Choose a reason for hiding this comment

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

Shouldn't we also update clang-armv8-lld-2stage builder ??

@DavidSpickett
Copy link
Contributor Author

Yes, I was a bit hesitant because the Neoverse N1 isn't a typical AArch32 host, but we have other Armv7 bots with a much earlier CPU setting to cover that side of things.

I will just check that there are no new bugs with neoverse-n1 on Armv8.

@DavidSpickett DavidSpickett changed the title Compile for Neoverse N1 on Linaro's AArch64 bots that are on Mt Jade hardware Compile for Neoverse N1 on Linaro's Armv8 bots that are on Mt Jade hardware Jan 14, 2025
@DavidSpickett
Copy link
Contributor Author

Shouldn't we also update clang-armv8-lld-2stage builder ??

Done.

There are v7 builds running on Neoverse-N1 but it makes sense to leave them targeting CPUs that are actually v7, even if they are going to ultimately run on Armv8.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants