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

Windows VMs #31

Open
baszalmstra opened this issue Apr 6, 2024 · 6 comments
Open

Windows VMs #31

baszalmstra opened this issue Apr 6, 2024 · 6 comments

Comments

@baszalmstra
Copy link

Let me start by saying thank you for this this initiative, it is fantastic! It is great to see that very complex and resource intensive builds can still be created using the resources provided here.

I am on a journey to try to improve the ML situation on Windows using conda-forge. While trying to build pytorch for windows I quickly ran into the large resource requirements for these builds. Ideally we would also be able to use these servers to create windows builds. It seems to me that the most straightforward way to achieve this is to use Windows VMs.

So my question is: I was wondering if it would be possible to build and use Windows images using this repository? I would be happy to contribute to make this happen.

@jaimergp
Copy link
Collaborator

jaimergp commented Apr 8, 2024

Hey @baszalmstra, thanks for the question!

We haven't looked into this but I anticipate frictions like:

  • Figure out Windows OS licensing. It's quite involved and we would need to figure out the billing.
  • Figure out whether we are complying with the VC compilers redistribution clauses or whether we also need to pay for that.
  • Figure out the contents of the VM image so it mirrors what we usually require in the Azure runners

That's from the top of my head. There might be more technical challenges when it comes to deploying it on OpenStack or things like that.

Tagging @aktech and @isuruf in case they have more details.

@aktech
Copy link
Member

aktech commented Apr 8, 2024

Agree with @jaimergp on what needs to be done for Windows.

Licensing is the main hurdle IMO, everything else technically is possible. I would suggest going with windows on cloud (like Azure). Cirun supports windows as well, with disk size customisation. All we need to do is:

Example

@wolfv
Copy link

wolfv commented Apr 8, 2024

I think re-using the Github image would be the best option for us. Spinning it up on Google Cloud would be ideal, but we could arrange ourselves with another platform as well.

I am not sure about the process of using the Github image. Potentially we could also build something more lightweight with just Visual Studio community edition, git and patch.exe installed.

@aktech
Copy link
Member

aktech commented Apr 9, 2024

I think re-using the Github image would be the best option for us. Spinning it up on Google Cloud would be ideal, but we could arrange ourselves with another platform as well.

I would suggest going with Azure for now, for two reasons:

  • Windows VM support on Azure is better than any other cloud provider.
  • I believe the scripts here https://github.com/actions/runner-images/ work better with Azure as they upload to azure and are written in a way keeping azure in mind IIRC.

I am not sure about the process of using the Github image. Potentially we could also build something more lightweight with just Visual Studio community edition, git and patch.exe installed.

That's better if that's all you need in the image, then you don't need to worry about second point above.

@jaimergp
Copy link
Collaborator

jaimergp commented Apr 9, 2024

With custom images, don't we have to worry about re-distributability of the artifacts? IOW, they'd need to be private, kept up to date and in sync with the Azure/GHA runner ones?

@aktech
Copy link
Member

aktech commented Apr 9, 2024

With custom images, don't we have to worry about re-distributability of the artifacts? IOW, they'd need to be private, kept up to date and in sync with the Azure/GHA runner ones?

They doesn't have to be private, the scripts can be public and you'll have a workflow to push them to an Azure account. Why do we need to keep them up to date with GHA runner ones? You'd only need to update the things that you "need" to keep updated in the CI, like say you need an update version of git or visual studio.

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

No branches or pull requests

4 participants