-
Notifications
You must be signed in to change notification settings - Fork 4
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
[buildkite] Add CI builds on GPUs #113
Conversation
test-self-hosted can be commented out |
.buildkite/pipeline.yml
Outdated
using Pkg | ||
Pkg.add("CUDA") | ||
Pkg.add("KernelAbstractions") | ||
Pkg.add("NLPModels") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why was this necessary?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It depends on how you want to run the tests.
If you just want to use runtests.jl
, we can modify it.
But with the current pipeline.yml
, we can also run specific and longer tests that target specific GPUs without environment variables.
I did something similar in Krylov.jl
, using buildkite to run GPU tests separately from CPU tests, which is recommended to avoid occupying the GPUs for too long, allowing other users and repositories to access them.
.buildkite/pipeline.yml
Outdated
Pkg.add("NLPModelsJuMP") | ||
Pkg.add("Percival") | ||
Pkg.add("PowerModels") | ||
Pkg.add("MadNLP") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure if this is ideal. Maybe we can create a separate Project.toml file for testing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The best solution is to create one Project.toml
for each dependency. We can create a CI build for each extension if we do that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't we do, say, Project.toml
on /test
and have Pkg.add("CUDA.jl")
and Pkg.add("KernelAbstractions.jl")
before project environment instantiation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So that we don't need to keep duplicate copies of Project.toml
for testing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can do that, it's what I do for KrylovPreconditioners.jl
:
https://github.com/JuliaSmoothOptimizers/KrylovPreconditioners.jl/blob/main/.buildkite/pipeline.yml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this approach is good. Can we do it in this way?
Thanks @amontoison for setting this up! |
@sshin23