ginkgo-project / ginkgo

Numerical linear algebra software package
https://ginkgo-project.github.io/
BSD 3-Clause "New" or "Revised" License
415 stars 90 forks source link

Document precision and determinism guarantees in Ginkgo #983

Open upsj opened 2 years ago

upsj commented 2 years ago

Motivated by #741:

Our SpMV formats and BLAS operations have different properties in terms of bitwise equivalence (determinism) and precision in general. It would make sense to document them more precisely.

Determinism

Important cases:

(Mixed) Precision

Dependent on whether the kernels use atomics or not, they can use the highest possible precision for all operations, or accumulate partially in the output precision. This has some impact on the precision on the precision of SpMV if the precision of the output vector(s) is smaller than the highest precision involved.

upsj commented 2 years ago

Examples where bitwise equivalence is important:

MarcelKoch commented 2 years ago

Just an organization question, do you suggest having a dedicated document somewhere which explains the all the details, or is this something that should be added to all classes/functions, where this might apply?

upsj commented 2 years ago

I would suggest adding a section to each LinOp (if it concerns apply) and function (if it concerns something else), and maybe a table giving an overview?