[Beowulf] Question about amd64 architecture and floating point operations

Mark Hahn hahn at physics.mcmaster.ca
Wed Nov 22 10:28:50 PST 2006


> A common confusion ... x86_64 changes nothing about the precision of floats 
> or doubles in
> C or Fortran.

well, sort of.  it was pretty common to find at least some computations
in ia32 using 80b FP, intentionally or not.  but iirc in long mode
(colloquially x86_64), you no longer get x87 access.

> units.  The 64-ness refers to the added memory addressibility provided by the 
> larger address
> registers.

the architecture family doesn't really have address registers
(ala 68000, for instance).  ax/dx/si/etc are all 64b, and possibly
more importantly, there are now more such registers available.  that's 
just the non-SSE parts - x86_64 also gives more 128b MMX/SSE/etc
registers.

> This potential itself is not fully utilized as I believe only 
> 40-bits are used (the socket
> F series may have bumped this up to 48-bits).

no, that's physical address bits, which are completely unrelated to 
virtual address bits and/or addr register width.  consider that the
last generations of ia32 could address more than 4GB of ram (had more
than 32b of physical addressability), but any process still only ever
really had a 32b address space.

I don't believe the 40/48 is in any way visible to the user.
I also don't think it's relevant, in the absense of Horus-style 
extensions to the physical expandability of these machines (8 sockets,
theoretically 64 dimms and "only" ~256G ram.)

the user sees a 64b address space.

>      Results are truncated to 64-bits when stored to memory, but a path

they can be; they don't have to be.



More information about the Beowulf mailing list