Select Page

Xhci-root-hub-0-driver-gigabyte

Gigabyte USB 3.0A Interface Driver

List of operating systems
:de:Gigabyte#Gigabyte-Ethernet Controller

References

Category:Computer hardware companies
Category:GigabyteQ:

Floating point operations and double precision arithmetic

I am using a CPU that supports SSE instructions and I am also using double precision arithmetic.
All the computations that I do involves division with only integer parts.

When I am dividing using 64-bit intermediate result, I do not find any difference in CPU execution time when I am using SSE or when I am not.
When I am dividing using 32-bit intermediate result, I find that CPU execution time increases when I am using SSE.

Is this behavior expected? I know that when I divide integer by double precision values, CPU will have to take additional steps due to double rounding. But why does it increases the CPU time when the intermediate result of the division is in 32-bit? Is that the result of the double rounding in the execution time?

A:

This is expected. The number theory behind floating point addition and division is a bit complicated and there are quite a few rounding points – try this link for details:

The basic idea is that the floating point number has two parts, the significand (say 64 bits long) and the exponent. The significand is the decimal number represented in a form suitable for addition and subtraction. For addition the significand stays the same so the new floating point number is slightly larger but for subtraction it gets smaller.
For division the case is a bit more tricky. Say you have (1.03 * 3.33) / 3.33. When you divide you get (1.03 * 3.33) / 3.33 = 1.024. When rounded to double precision the result is 1.023999 instead of 1.024. So if you only work on the 32 bits of the significand after the division you always make a slight error.
If you use 64 bits for the significand everything just works out. After division the result has an exact double-precision significand so if you round to 32 bits after the division the rounding will be exact.
Here’s how you can perform accurate arithmetic with https://wakelet.com/wake/XUQZEHdXLU2B1a9geEi8B

xhci-root-hub-0-driver-gigabyte.zip
Note that the output directory can be overwritten during the driver installation process.
The following driver files have been cut from the distribution:
.\xhci-root-hub-0-driver-gigabyte\xhci-root-hub-0-driver-gigabyte.sys
The following driver files have been modified:
.\xhci-root-hub-0-driver-gigabyte\xhci-root-hub-0-driver-gigabyte.sys
No Intel® Hardware ID code for these drivers has been found. No Intel® Hardware ID code for these drivers has been found.
.\xhci-root-hub-0-driver-gigabyte\xhci-root-hub-0-driver-gigabyte.inf
.\xhci-root-hub-0-driver-gigabyte\xhci-root-hub-0-driver-gigabyte.sys
.\xhci-root-hub-0-driver-gigabyte\xhci-root-hub-0-driver-gigabyte.cat
List of driver files that match with the above model in our driver archive.
xHCI Root Hub 0 Driver for Gigabyte GA-H81-D2V (6.0)
xHCI Root Hub 0 Driver for Gigabyte GA-H81-HD3 (6.0)
xHCI Root Hub 0 Driver for Gigabyte GA-H81M-D2V (6.0)
xHCI Root Hub 0 Driver for Gigabyte GA-H81M-HD3 (6.0)