Differences Between X87 FPU and SSE2
FPU (x87) instructions provide higher precision by calculating intermediate results with 80 bits of precision, by default, to minimise roundoff error in numerically unstable algorithms (see IEEE 754 design rationale and references therein). However, the x87 FPU is a scalar unit only whereas SSE2 which can process a small vector of operands in parallel.
If codes designed for x87 are ported to the lower precision double precision SSE2 floating point, certain combinations of math operations or input datasets can result in measurable numerical deviation, which can be an issue in reproducible scientific computations, e.g. if the calculation results must be compared against results generated from a different machine architecture. A related issue is that, historically, language standards and compilers had been inconsistent in their handling of the x87 80-bit registers implementing double extended precision variables, compared with the double and single precision formats implemented in SSE2: the rounding of extended precision intermediate values to double precision variables was not fully defined and was dependent on implementation details such as when registers were spilled to memory. However, modern language standards such as C99 and Fortran 2003 have incorporated IEEE 754 floating point support and now exactly specify the semantics of double extended ("long double") precision expressions to avoid such reproducibility problems.
Read more about this topic: SSE2
Famous quotes containing the words differences between and/or differences:
“The extent to which a parent is able to see a childs world through that childs eyes depends very much on the parents ability to appreciate the differences between herself and her child and to respect those differences. Your own children need you to accept them for who they are, not who you would like them to be.”
—Lawrence Balter (20th century)
“Traveling, you realize that differences are lost: each city takes to resembling all cities, places exchange their form, order, distances, a shapeless dust cloud invades the continents.”
—Italo Calvino (19231985)