libCEED
libCEED copied to clipboard
Backend determinism
Some backends, such as those that use atomics to resolve write conflicts, are non-deterministic due to lack of floating point associativity. We should
- [x] Add an interface to query backend properties. Perhaps
CeedGetDeterministic(Ceed, bool*)orCeedGetProperty(ceed, "deterministic", &prop). - [x] Document which backends are deterministic (automated or not)
- [ ] Test that backends claiming to be deterministic are empirically
- [ ] Eventually: develop a high-performance deterministic CUDA backend (e.g., via interface coloring)
Cc: @tzanio