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:
get(ENV, "RUNNER_NAME", "") in ("kkt", "occidata")
The Handbook requires that a missing/non-functional GPU fails loudly on either runner:
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.
The CI workflow already targets the
occidataself-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,
kktandoccidata, for example:The Handbook requires that a missing/non-functional GPU fails loudly on either runner:
The current ExaModels GPU tests use
CUDA.functional() && ..., which silently skips the GPU assertion when CUDA is non-functional. Replace this with visibleTest.@test_skipbehavior 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.