CI: Add a way to error on operator fallback
- Dominant language
- C
- Stars
- 265
- Forks
- 78
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 11
Description
There are a ton of recent bugs found which are due to us silently falling back on RTC compilation failure for CUDA/HIP.
While this silent fallback is generally good for user-facing code, we need a way to make that error loud during CI testing for tests that should not fall back.
I think the easiest way would be to have a `CeedSetWarnOperatorFallback(Ceed ceed, bool should_warn)` (or similar) function which turns the normally silent (`CeedDebug`) fallback messages into loud (`printf`) fallback messages. We could also make it more specific, say `CeedSetWarnJiTCompilationFailures`, which is really the case we most often care about.
There's a couple edge cases we need to be careful about, such as `CeedOperatorLinearAssembleDiagonal` and `CeedOperatorLinearAssembleSingle` which intentionally fall back to the reference implementation, then use the fallback parent implementation of the inner `CeedOperatorLinearAssembleQFunctionBuildOrUpdate` kernel.
Contributor guide
Research direction
Start by tracing the CeedDebug messages used for CUDA/HIP RTC compilation fallback, then inspect CeedOperatorLinearAssembleDiagonal and CeedOperatorLinearAssembleSingle for intentional reference fallbacks. Done means CI can make unintended compilation fallback failures loud without treating those intentional fallback paths as errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- backend-api-design, compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100