control-toolbox / control-toolbox/CTParser.jl
Add consistent GPU runner capability detection for kkt and occidata
- Dominant language
- Julia
- Stars
- 3
- Forks
- 0
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 2
Description
The CI workflow already targets the `occidata` self-hosted GPU runner, but there is no shared GPU runner capability detection in the test suite.
If GPU/device-dependent tests are added or enabled, introduce a consistent capability predicate that recognizes both supported runners, `kkt` and `occidata`, for example:
```julia
get(ENV, "RUNNER_NAME", "") in ("kkt", "occidata")
```
The Handbook requires that a missing/non-functional GPU fails loudly on either runner:
```julia
if on_gpu_runner()
Test.@test is_cuda_on()
end
```
The current ExaModels GPU tests use `CUDA.functional() && ...`, which silently skips the GPU assertion when CUDA is non-functional. Replace this with visible `Test.@test_skip` behavior on CPU/developer runners and a failing assertion on the expected GPU runners. Keep runner naming and related test documentation aligned with the CI workflow.
Contributor guide
Research direction
Start with the CI workflow's occidata runner target and the current ExaModels GPU tests using CUDA.functional(); compare them with the Handbook's GPU guidance. Add the shared on_gpu_runner capability check for kkt and occidata, use Test.@test_skip on CPU/developer runners, and ensure is_cuda_on() fails on expected GPU runners when CUDA is non-functional.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- ci-cd, testing
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 70/100