Backend determinism
Open
- Dominant language
- C
- Stars
- 265
- Forks
- 78
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 11
Description
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*)` or `CeedGetProperty(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
Contributor guide
Assessment
This issue has not been assessed yet.