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

Set up arm64 graviton CI using cirun #4157

Merged
merged 4 commits into from
Sep 21, 2023
Merged

Conversation

steppi
Copy link
Contributor

@steppi steppi commented Jul 24, 2023

This PR adds CI jobs for the arm64 graviton architecture. It uses cirun to run github actions jobs on AWS. I have this set up and working on my personal fork of OpenBLAS: /~https://github.com/steppi/OpenBLAS/actions. The cirun app should be installed for this repository using the steps described here. @xianyi, @martin-frbg, could you please create a cirun account and connect it to this repository? In case you're wondering about AWS costs/admin: Quansight has an AWS account which can be used for the necessary compute to run these jobs, and we will take care of paying the bills and resolving potential issues with it going forward. Note that we set this up with support from the Sovereign Tech Fund, and that stretches to the end of 2024 - and we are committed to taking care of it beyond that end date as well."

Note: I have attempted to skip CI for this initial PR because the cirun jobs will fail without a connected cirun account and other jobs are not relevant. It looks like I only managed to skip github actions jobs.

cc @martin-frbg, @rgommers, @mattip, @honno

@steppi steppi changed the title Cirun Set up arm64 graviton CI using cirun Jul 24, 2023
@Mousius
Copy link
Contributor

Mousius commented Jul 26, 2023

Hi @steppi, thanks so much for this. Glad to see SVE testing enabled in OpenBLAS! Let me know if I can assist in running and maintenance here.

Just curious why you've chosen to go with cirun over integrating directly with something like Cirrus (https://cirrus-ci.org/guide/supported-computing-services/#aws). What's the added value with cirun?

@steppi
Copy link
Contributor Author

steppi commented Jul 26, 2023

Hi @steppi, thanks so much for this. Glad to see SVE testing enabled in OpenBLAS! Let me know if I can assist in running and maintenance here.

Thanks @Mousius, will do.

Just curious why you've chosen to go with cirun over integrating directly with something like Cirrus (https://cirrus-ci.org/guide/supported-computing-services/#aws). What's the added value with cirun?

That's a good question. Primarily, the team I work on has more experience working with cirun, we know and work with the lead developer, and we're confident in its ability to limit our exposure to unexpected cost spikes from AWS. Running jobs on EC2 through Cirrus is less well known to us, but we have been considering it and I'm currently working on setting it up on my fork with the intent to submit another PR for the Cirrus option today.

@steppi
Copy link
Contributor Author

steppi commented Jul 26, 2023

@Mousius I took an initial stab at getting these jobs set up with Cirrus on my personal fork here and they are passing successfully. I'm going to hold off on making a PR until I learn more about the plan for letting the OpenBLAS Cirrus account have access to Quansight's AWS credentials in a trusted way. We have a plan in place already for cirun.

At the moment the only difference between the Cirrus jobs and the Cirun jobs is the complexity of key logic for the build cache. The following behavior is not available out of the box on Cirrus, and would need to be re-implemented. I don't think this is a blocker though for using Cirrus.

 # We include the commit sha in the cache key, as new cache entries are
          # only created if there is no existing entry for the key yet.
          # GNU make and cmake call the compilers differently. It looks like
          # that causes the cache to mismatch. Keep the ccache for both build
          # tools separate to avoid polluting each other.
          key: ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}-${{ github.sha }}
          # Restore a matching ccache cache entry. Prefer same branch and same Fortran compiler.
          restore-keys: |
            ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}
            ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}
            ccache-${{ runner.os }}-${{ matrix.build }}

@Mousius Mousius mentioned this pull request Jul 27, 2023
@martin-frbg martin-frbg merged commit bb90b6d into OpenMathLib:develop Sep 21, 2023
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