Bandwidth - bend it like Beckham?

Neeyik

Homo ergaster
Veteran
First off, please excuse the piss poor thread title...I couldn't think of anything much better ;) A while ago, I was tidying up a little chart of chips specs of mine when I thought popped into my head about how bandwidth figures are calculated for the local memory on video cards. Just bare with me on this one...

Ignoring all the stuff about latencies, instruction lengths and so on - I'm talking the "standard" theoretical maximum memory bandwidth that's calculated on the basis that so-many-bits of data can be transferred per clock cycle of the memory bus. Here is one such example:

NVIDIA's GeForce4 Ti4600
From their own site (http://www.nvidia.com/view.asp?PAGE=geforce4ti), the bandwidth is given as 10.4GB/sec.

Although ATI are careful not to display the theoretical bandwidth on their website for the 9700 Pro, most review sites aren't so proud and happily show 19.8GB/sec. Now the 4600 has a memory bus speed of 325MHz and can transfer 128-bits of data twice per cycle. NVIDIA are getting 10.4GB like this - (325M x 2 x 128)/(8 x 1000) = 10.4GB/sec. The 9700 Pro has a bus speed of 310MHz and can transfer 256-bits of data twice per cycle - (310 x 2 x 256)/(8 x 1000) = 19.8GB/sec.

Anyone else spot the oddity that caught my attention? That's right 1GB = 1000MB according to NVIDIA et al, not 1GB = 1024MB. They seem quite happy to count bits and bytes properly when it comes to "256-bit GPU" or "32-bit colour" but not with bandwidth. It's just like with hard drive manufacturers and capacity figures. I guess that in the past it's been no big deal but it has surprised me that nobody else seems to be bothered by it, considering the hooharr we see over such things as pipeline configuration or number of vertex pipelines. Calculated properly (ie. dividing the 10^6 Hz business by 1024 x 1024 x 1024 to correctly display it in GB) the 4600 has a bandwidth of 9.69GB and the 9700 Pro 18.48GB/sec....yes, yes I know that I'm being highly pedantic; after all, it's only a loss of 7% but hey - I like things to be right!

I have a rather odd feeling right now...kinda like the one where you step into a party and suddenly everyone stops, stares right through you for 10 seconds and then carry on as before... :oops:...I'll just go and linger in a corner somewhere (with my Smirnoff Ice)...
 
Hi,

Don't feel bad. :) A lot of us here like things to be right, and it's annoying whne they arn't. Thanks for point that out.

Nite_Hawk
 
Kilo (K) = 1000
Mega (M) = 1000*1000
Giga (G) = 1000*1000*1000

No different for data amounts than for any other physical measure (grams, meters, volts, etc). If you want powers of 2, the official terms (even if they may sound a bit silly/weird) are

Kibi (Ki) = 1024
Mebi (Mi) = 1024*1024
Gibi (Gi) = 1024*1024*1024

So the R9700Pro has a bandwidth of 19.84 GB/s = 18.48 GiB/s ...
 
Dang - I hadn't realised that kibi, mebi, etc had all become SI standardised prefixes (and a brief check with NIST verified this). Even worse is that this happened bloody years ago :(

The shame of looking like a prat here I can live with :D but the problem that the A-level physics syllabus I teach is that it's clearly not aware of the updated SI situation :? I'll walk away from this one before I end up being asked to do something about it...
 
It's not much of a problem now but once they start to get bigger badwidth the numbers will get more and more exagerated IE hard drives. Stopping it now would prevent disapointment down the line.
 
There are different conventions depending on what you're talking about. When talking about storage space, HD/RAM etc we generally use 1MB to mean 1024 * 1024 bytes. That's because it makes sense to use powers of two when dealing it, because it's going to be addressed using a certain number of bits etc.
When talking about bandwidth, Hz or anything else that's a function of time the convention is that 1MHz = 1000 * 1000 Hz and 1Mb/s = 1000 * 1000 bits / s. Using powers of two for these things isn't advantageous in any way anyway, so it's not being used. The only problem is however that there may sometimes be confusion when mixing storage and bandwidth figures.
 
Humus said:
The only problem is however that there may sometimes be confusion when mixing storage and bandwidth figures.
Hence the MiB, GiB, and so on terms that are occasionally used. Personally, I don't like 'em, but maybe that's just because I'm not confused by mixing storage and bandwidth figures, and don't have a whole lot of patience for those that are...
 
I wish everyone would use the binary prefixes. But then again, there seem to be some people who don't even use the metric system...
 
Neeyik said:
.yes, yes I know that I'm being highly pedantic; after all, it's only a loss of 7% but hey - I like things to be right

Well, if you are going to be pedantic and RIGHT, at least be correct!
Its 7.2% difference, thank you very much: 2.4% per "power of 1000" (kilo, mega, giga, etc). :D
 
The problem is it's swimming against the flow. If one company were to post power-2 scaled numbers, but the competition is posting metric-scaled numbers, one looks bad to the 99.9% of people who haven't a clue about the difference.

Hence why all the hard drive manufacturers standardised on '1Mb == 1,000,000 bytes'. Same rule applies here.
 
arjan:
Keep promoting those prefixes, I like them. If we keep promote them they might be standard in a few decades from now. (Pessimistic, me?)
Only negative part is that the unit 1 MiB reminds me of a certain movie. 8)

Humus:
Agree, except for the HD part. They use "decimal" prefixes not "binary".

Chalnoth:
One problem though is that when you hear someone says X GB/s, you never know what kind of "G" they're talking about. The most common is of course 1000^3, but you can't be sure. I've seen it used for 1000^3, 1024^3, and even 1024*1000*1000 :oops:. So the confusion can be on the other part, and you'll still be affected by it.

Althorin:
No, it's actually ~7.37% :p

Dio:
When we're into nitpicking...
1 Mib = 1 mega bit
1 MiB = 1 mega byte
 
The *real* problem is that people are using the term bandwidth instead of throughput. Bandwidth is measured in Hz, and should be abbreviated using the base-10 prefixes (and really has nothing to do with anything, since the memory on graphics cards runs at a single clock frequency, meaning it has a bandwidth of zero). Throughput is in bits/bytes, and should be using the base-2 prefixes.
 
Basic said:
Dio:
When we're into nitpicking...
1 Mib = 1 mega bit
1 MiB = 1 mega byte
I think my point is there's no point in nitpicking at all... everyone uses all these terms wrong. Mb and MB are both frequently used - e.g. Scan's web site uses small b's everywhere...
 
Ah, it's probably been said already, but after quickly scanning through this thread I have this to say:

1. When mesuring bandwidth and hd sizes, the standard is to use 1000.

2. b = bit, B = byte, get it right! I usually know what ppl mean, but it creates huge amounts of confusion on the net, so get it right! (And another thing: M=mega, m=milli!)

3. Mebi and Kibi are stupid, who came up with those stupid words? Since you can know from the context wheter 1000 or 1024 has been used they are unnecessary. On the other hand, strictly speaking it is wrong to use M and K and so on for anything other than powers of 1000, so I propose that if we need to specify exactly what we're talking about we should use binary XX for 1024 and metric XX for 1000 (Like 10 metric GB/s of bandwidth, 512 binary MB of memory)

[/rant]
 
Dio said:
Scan's web site uses small b's everywhere...

And it makes them look less educated.

Thowllly:
Yes, using 'm' for Mega is another of those irritating things.

You don't have to think "Mebi bytes" when you see MiB. It's a short form for "Mega binary". So Mi is pretty much what you proposed in the end of the post, but more efficient. :)
I must admit that it feels a bit awkward, but I rather write that when I want to explicitly stress that it's 1024^N.

And it's always wrong to use "K" for 1000, the correct prefix is "k".
Once upon a time, when larger prefixes was of little use, the standard was: 1 k = 1000, 1 K = 1024.
 
Basic said:
And it's always wrong to use "K" for 1000, the correct prefix is "k".
Doh, I knew that, but I still managed to make that mistake in the very post I'm complaining about other peoples capitalization :oops:
 
Thowllly said:
Since you can know from the context wheter 1000 or 1024 has been used they are unnecessary.
Sometimes you can't, eg. when a website publishes bandwidth (data throughput) numbers of a graphics card. You can't see immediately whether they took that from the specs or calculated it themselves.

btw, maybe the clock signal of memory has zero bandwidth (although I think it's more rectangular), but the data signal definitely has not.
 
Basic said:
Humus:
Agree, except for the HD part. They use "decimal" prefixes not "binary".

Well, yeah. When I said HD I was really thinking of filesizes and stuff. HD's did however once upon a time generally use 1024 * 1024 per MB.
 
Back
Top