Re: Plan 9 grids with AMD64 CPUs

Vester Thacker <[email protected]> Sat, 29 Nov 2003 21:30:21 +0900
Newsgroups gmane.os.plan9.nine-grid
Message-ID <[email protected]>
On Sat, Nov 29, 2003 at 09:17:11AM +0000, Charles Forsyth wrote:
> 
> i'm curious about this: apart from the hype and artificial benchmarks,
> for an arbitrarily chosen real computational program,
> how much faster is it?

I don't have any figures concerning the increase in speed. I could only
speculate.  
 
> for things that do lots of work on genuinely
> 64-bit integer values, i can see it (otherwise you're just shifting more zero bits
> round the machine).  for floating-point, given that the 387 instructions
> were rather clumsy, if you can get that many more things into real
> registers, i can also see it--i suppose.  even then, the later x86-based
> architectures have shadow registers behind the scenes, managed
> by hardware, which is why they are quite competitive with
> RISC machines (fiendishly complex inside, but that turns out not to matter).
> the data paths in the modern x86 devices are already at least 64 bits.

I think that there is more to it than that. I'll share with you some
excerpts from the AMD x86-64 programmer's guide volume I:  

"AMD64 in true 64 bit mode uses a flat segmentation model of virtual memory. 
The 64-bit virtual memory space is treated as a single, flat (unsegmented) 
address space. Program addresses access locations that can be anywhere 
in the linear 64-bit address space." Also, you don't have a need for far 
pointers.

"In true 64-bit mode, eight new General Purpose Registers(GPRs) are 
added to the eight legacy GPRs, all 16 GPRs are 64 bit wide, and the 
low bites of all registers are accessable."

"The AMD64 architecture provides three floating point instruction
subsets, using three distinct register sets.
The 128-bit media instructions support 32-bit single-precision and 
64-bit double precision floating point operations, in addition to
integer operations. Operations on both vector data and scalar data
are supported, with a dedicated floating point exception reporting
mechanism. These floating point operations comply with the IEEE-754
standard.
The 64-bit media instructions support single precision floating
point operations.
x87 floating point instuctions support single precision, double
precision, and 80 bit extended precision floating point operations."

"Maximum floating point performance can be achieved by using the 128
bit media instructions. One of these vector instructions can support
up to four single-precision(or two double precision) operations in
parallel. In 64-bit mode, the x86-64 architecture doubles the
number of legacy XMM registers from 8 to 16."

"Applications gain the additional benefits using the 64-bit media
and x87 instruction. The separate register set supported by these
instructions relieve pressure on the XMM registers available to
the 128 bit media instructions. This provides appliations programs
with three distinct sets of floating point registers. In addition,
certain high-end implementations of the AMD64 architecture may 
support 128-bit media, 64 bit media and x87 instructions with separate
execution units."

Sorry, I didn't want to write a novel. I just wanted to show you that 
some things are improved when using the 64-bit mode over the legacy
mode. I suppose that I am focusing on the form over function qualities
of the new architecture, and trying to take advantage of new 
capabilities that are now available. Also, I am not trying to win you 
over. I just want to give you something to think about. 

> in short, apart from artificial benchmarks, what improvements
> do people see on real applications and just as important,
> what actually makes the difference?

Again, I don't think I have an adaquate answer.
I can only speak for myself. Any speed or precision improvements
in distributed clients like "Find-A-Drug" are greatly needed, imho.
I don't see these advances in computing occuring by optimizing the
capabilities of older less capable processors. I suppose the
difference for me would be using the advances that are available
over not using them. I think along the lines if Plan 9 is not
progressing then it is retrogressing. 

Regardless, I have high hopes for Plan 9 and grid computing.

-- Vester Thacker