CEED / CEED/libCEED

CI: Add a way to error on operator fallback

Open
#1,994 3 comments 0 reactions 0 assignees View on GitHub
CI GPU
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.