Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-08 Thread Comeau At9Fans
On Mon, May 7, 2012 at 8:44 AM, erik quanstrom wrote: > ... >processor bw >> memory bw ==> smaller integers faster >memory bw >> processor bw ==> natural integers faster > > (this is yet another reason that int_fast* are a half-baked idea. > how does the compiler know this relati

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-08 Thread Comeau At9Fans
On Mon, May 7, 2012 at 6:36 AM, dexen deVries wrote: > On Monday 07 of May 2012 11:27:29 Charles Forsyth wrote: > > The MIPS, PowerPC and SPARC all grew to 64 bits from 32 bits, so 32 bit > > quantities > > (and usually but not always 16 bit and 8 bit quantities) have suitable > > instructions to

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread erik quanstrom
On Mon May 7 04:54:23 EDT 2012, st...@quintile.net wrote: > sorry for being vague. > > treating pixels as 64bit on amd64 as that is the natural size for the > machine, vs using 32bits per pixel - 10 bits of r, g, and b or y, u, > and v plus 2 spare leads to a significant speedup; where significa

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread erik quanstrom
> both handling pixel graphics and transferring to graphic card are special > cases. > speedup may be due to better prefetch during sequential memory access, but > larger data size should not help much here. > more data causes FSB and PCIe contention, and cache trashing. oops? pci "memory" is no

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread erik quanstrom
> instructions. Alpha might have > been an exception too, but that's dead. alpha was originally, but later added them. http://en.wikipedia.org/wiki/DEC_Alpha#Byte-Word_Extensions_.28BWX.29 - erik

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread dexen deVries
On Monday 07 of May 2012 11:27:29 Charles Forsyth wrote: > The MIPS, PowerPC and SPARC all grew to 64 bits from 32 bits, so 32 bit > quantities > (and usually but not always 16 bit and 8 bit quantities) have suitable > instructions to fetch them. fwiw, back in my uni days we were using some old 64

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread Charles Forsyth
The MIPS, PowerPC and SPARC all grew to 64 bits from 32 bits, so 32 bit quantities (and usually but not always 16 bit and 8 bit quantities) have suitable instructions to fetch them. Exceptions include ARM, where the original 32 bit architecture made byte access (in the C style at least) expensive,

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread Charles Forsyth
uintptr for pointer/integer (uintptr_t in ANSI_t "t for type" style). the problem with large file offset doesn't exist in Plan 9, because the type of seek changed, instead of Unix's messing about trying to conserve the type of lseek (because it's got an "l" in it, I suppose), or worse, on some syst

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread dexen deVries
On Monday 07 of May 2012 09:53:01 steve wrote: > sorry for being vague. > > treating pixels as 64bit on amd64 as that is the natural size for the > machine, vs using 32bits per pixel - 10 bits of r, g, and b or y, u, and v > plus 2 spare leads to a significant speedup; where significant is a numbe

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-07 Thread steve
sorry for being vague. treating pixels as 64bit on amd64 as that is the natural size for the machine, vs using 32bits per pixel - 10 bits of r, g, and b or y, u, and v plus 2 spare leads to a significant speedup; where significant is a number lost in the mists of time. i believe this speedup is

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-06 Thread Comeau At9Fans
I've heard that 64-bit is not an immediate win over 32 for graphics and such, but then again also heard that 32 bit is not the pits, and that it more or less becomes a wash. So, in your case, what is is about 32 that makes it a *significant* win, given that the space would have been used in either

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-06 Thread steve
i think this is an often misunderstood fact, 32bit ints are, in my experience, a significant win compared with 64bit when doing memory intensive work - image processing in my case. -Steve On 5 May 2012, at 06:48 PM, Charles Forsyth . > if it's performance you're worried about, for programs tha

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread Comeau At9Fans
On Sat, May 5, 2012 at 1:48 PM, Charles Forsyth wrote: > if it's performance you're worried about, for programs that don't care > about width, i'd expect 32 bits at least > to match performance with 64 bits (if there's a measurable difference). > for one thing, cache lines will contain > more valu

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread Comeau At9Fans
On Sat, May 5, 2012 at 11:33 AM, dexen deVries wrote: > On Wednesday 25 of April 2012 15:32:06 erik quanstrom wrote: > > also, in case you missed it sizeof(int)==sizeof(long)==4 on both 32 > > and 64 bit plan 9, so recompiled programs won't get bigger integers > > just for the recompiling. > > > p

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread dexen deVries
On Saturday 05 of May 2012 18:48:37 Charles Forsyth wrote: > many existing C programs (and not just on Plan 9) think long is 32 bits, or > don't care. > those that do care don't work. for those that don't care, it doesn't matter. > it's quite difficult to decide automatically (eg, in a compiler) in

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread Charles Forsyth
many existing C programs (and not just on Plan 9) think long is 32 bits, or don't care. those that do care don't work. for those that don't care, it doesn't matter. it's quite difficult to decide automatically (eg, in a compiler) into which category a program falls. a compiler can't easily detect t

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread erik quanstrom
> pardon silly question, but... why, on 64bit machine, P9 uses 32bit ints and > longs? > > my impression is, int was supposed to match machine's preferred (best > performance etc.) integeral datatype, and long was supposed to be enough to > hold a pointer? (i.e., sizeof(long) >= sizeof(void*))

Re: [9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread David du Colombier
> my impression is, int was supposed to match machine's preferred (best > performance etc.) integeral datatype, and long was supposed to be enough to > hold a pointer? (i.e., sizeof(long) >= sizeof(void*)) No, long is always 32-bit on Plan 9. uintptr is big enough to hold a pointer. -- David du

[9fans] integer width on AMD64 (was: Re: AMD64 system)

2012-05-05 Thread dexen deVries
On Wednesday 25 of April 2012 15:32:06 erik quanstrom wrote: > also, in case you missed it sizeof(int)==sizeof(long)==4 on both 32 > and 64 bit plan 9, so recompiled programs won't get bigger integers > just for the recompiling. pardon silly question, but... why, on 64bit machine, P9 uses 32bit i