Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Something I never understood, why do graphics cards usually have small amounts of memory on them? I know memory isn't everything, but surely it's pretty cheap just to load 4gb of memory on any old graphics card?

share|improve this question
3  
Why not just write your app more efficiently? –  Jeremy Visser Feb 28 '11 at 12:13
9  
If I had a dime for every person that thinks more memory means more performance, I'd be rich by now. –  Breakthrough Feb 28 '11 at 12:17
2  
So I should take back my Voodoo5 5000 AGP 4gb? Shucks. –  Nic Feb 28 '11 at 16:32
add comment

4 Answers

It's not cheap, per se, but it could be done, yes. It'd raise the price of the card, but it could be done.

Question is, though, why bother? If your card isn't fast enough to actually need 4GB of VRAM, it's wasted money, what's the point. You can have as many textures as you like, but unless you can actually pull that 4GB of data through for every single frame, it's wasted.

The more important reason, however, is that in a 32-bit OS, VRAM gets first dibs on the 4GB addressable space. If you have 4GB of VRAM, that leaves precisely nothing for anything else, and your machine wouldn't even boot. Bummer!

share|improve this answer
    
This can surely be mapped about, even in a 32-bit OS. And 64-bit is very common these days. I doubt this. Also, each frame might not need the same textures, it depends if you're looking at the sky, the ground, or through the window into a house. That can change each frame, so you need much more textures than what you can use each frame. –  Macke Feb 28 '11 at 17:35
2  
@Marcus Mapping graphics card memory out of the 32-bit address space is not as easy as you might think, and would likely have consequences for applications that expect the graphics card to be mapped into their 32-bit address space and load textures straight into it rather than having to allocate memory, fill it with textures, then use expensive memory copy routines built into the graphics drivers. 64-bit makes this superfluous, but has only really been pushed out to consumers in the last 2-3 years. Vista had a 64-bit version but very few used it, win7-64 is the first hard push to 64-bit. –  Mokubai Feb 28 '11 at 17:47
1  
@Breakthrough; If you run 4GB of RAM and 1GB VRAM on a 32bit OS, you get ~3GB usable RAM. Take .5GB VRAM away and you get .5GB RAM back. While I don't have a card with 4GB of VRAM to test, nothing I know of suggests this behavior would change. –  Phoshi Feb 28 '11 at 19:27
2  
@Marcus; That's true, they are quite smart - which is why they should spend their time making better hardware, instead of making their cards work on hardware that'll bottleneck it anyway :P –  Phoshi Feb 28 '11 at 20:17
1  
@Breakthrough; What I mean is that while both cards are running, I believe the VRAM is effectively mirrored rather than pooled. –  Phoshi Feb 28 '11 at 21:20
show 8 more comments

Because it's usually not your run-of-the-mill RAM, it will be high-speed, multi-port and possibly in a very compact size all of which make it more expensive for the manufacturer.

share|improve this answer
add comment

In addition to RAM price, I suspect the memory controller and cache is designed to us as few bits as possible for addresses. It might prove too slow to use more memory.

share|improve this answer
add comment

There isn't a strong market need for large memory graphics cards yet. The GPU market is driven by gamers. Even the most high end games don't really need double precision. They're fine with single precision, the textures load faster 'n such, and what's more, in single precision land, they can cram twice as much in the space it would take to store a double.

This does nothing for my CUDA programs, and I for one would love a GPU with 48 GB of GDDR5 memory -- I drool at the thought -- but the market isn't there to build such a card because the gamers and the game developers just don't use that much memory.

As a simple thought experiment, if I buy a brand new game of a single density DVD, I could almost fit the entire image within a 4GB GPU memory space (You'd need 4.7GB). And of course they're not going to do that, but again perspective. This then begs the question, if they don't need the space, why would they want to use 64-bit addressing on the card (necessary to support more memory)? Why waste the hardware and penalize the performance for the vast majority of their clientele. It doesn't make good buisness sense.

Now with the recent uptick in GPGPU especially within the research, financial, and government sectors, you will start to see niche cards developed which much more memory. But they will be slow to appear and be much more expensive. Aka Tesla

share|improve this answer
    
Note that single/double precision only applies to vertices & normals, and the biggest memory hog on a gaming GPU today is likely the textures, rather than models. (Textures are probably stored in 16-bit float rather than 8-bit integer on the latest and greatest games though...) –  Macke Apr 28 '11 at 19:34
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.