control-toolbox / control-toolbox/CTParser.jl

Add consistent GPU runner capability detection for kkt and occidata

Open
#339 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.