quantumlib / qsim

Schrödinger and Schrödinger-Feynman simulators for quantum circuits.
Apache License 2.0
439 stars 147 forks source link

Modify CI tests to support GPU and AVX512 #363

Open 95-martin-orion opened 3 years ago

95-martin-orion commented 3 years ago

Self-hosted runners guide

Using self-hosted runners (e.g. on Google Cloud) would give us the ability to test qsim with AVX512 instructions and (eventually) GPU support - neither of which is currently possible with the default Github Actions runners.

95-martin-orion commented 3 years ago

Unfortunately, the Alphabet enterprise does not have its own self-hosted Github Actions runners, and current guidance prohibits the use of individually-configured self-hosted runners for public Github repositories. The recommended alternative (for the time being) is to use Kokoro for these tests.

aktech commented 3 years ago

Hi @95-martin-orion I am the creator of Cirun.io, "GPU support" and "Self-hosted" caught my eye.

FWIW I'll share my two cents. I created a service for problems like these, which is basically running custom machines (including GPUs) in GitHub Actions: https://cirun.io/

It is used in multiple open source projects needing GPU support like the following:

It is fairly simple to setup, all you need is a cloud account (AWS or GCP) and a simple yaml file describing what kind of machines you need and Cirun will spin up ephemeral machines on your cloud for GitHub Actions to run. It's native to GitHub ecosystem, which mean you can see logs/trigger in the Github's interface itself, just like any Github Action run.

Also, note that Cirun is free for Open source projects. (You only pay to your cloud provider for machine usage)

current guidance prohibits the use of individually-configured self-hosted runners for public Github repositories.

Since, Cirun creates ephemeral machines, this is not a problem.

95-martin-orion commented 3 years ago

Hi @aktech! Thanks for your recommendation, and for showing an interest in qsim. Unfortunately, we won't be able to make use of Cirun here as Google policy prevents us from using third-party applications on Github.

95-martin-orion commented 3 years ago

As demonstrated in #383, GPU testing is now covered in Kokoro.