We (gemma.cpp) recently started accumulating softmax terms into f64. There is at least one known case of this causing differing output, but after 200 tokens, hence unlikely to be detected in many benchmarks.
Does anyone have experience with higher-precision matmul and whether it is worthwhile?
Isn’t 200 tokens basically nothing? Did you mean to say 2000?
That's indeed short for some actual uses such as summarization, but AFAIK many/most? evals involve generating less than 200.
I haven't looked at all implementations, but the hardware (tensor cores as well as cuda cores) allows you to accumulate at fp16 precision.