I see in the comments it seems to be a huge miss understanding between 2 uses of “non-deterministic”:
1) from normal English: cannot be determined beforehand (results may vary)
2) from theory of computation: loosely “parallel computation” (unknown path to the solution)
For floating point math, there's no distinction, as "parralel computation with unknown path to the solution" inherently implies "results will vary", as (a+b)+c != a+(b+c).