Hang on! Before you dash off to your PC to pull out one of your two cards (or get on the phone to the doctor), I don’t mean that installing SLI or CrossFire dual graphics in your PC will somehow make you forget how to brush your teeth; what I’m actually referring to is a loss of system memory.
The reason for this is down to the fact that Windows has to reserve an area of memory address space for input/output devices that need to access the processor. Crucially, this includes graphics cards.
If you have a 32-bit version of Windows (which, let’s face it, most of us do) then the devices that require memory-mapped access must reside inside 4GB (see here for more information.)
So, if you have two 768MB GeForce 8800 GTX cards in SLI, then Windows has to set aside 1,536MB of this 4GB space, which means the maximum amount of memory your PC will be able to see is 2,560MB – just 2.5GB. And it will be 2.5GB whether you have 3GB, 4GB or 8GB of RAM installed.
Now look ahead to Quad CrossFire, which could mean, potentially, four 512MB (or larger) graphics cards. This would limit a 32-bit PC to 2GB (or less) of usable RAM, regardless of what is installed. Now imagine three 768MB 8800 GTX cards – that will only leave 1.7GB of RAM!
Clearly, multiple high-end graphics cards is only really feasible in a 64-bit OS, where the 4GB limit obviously doesn’t apply, but we’re still some way off 64-bit being the standard on desktop PCs.
So the moral of the story is, if you have a 32-bit OS, stick to a single graphics card or you could lose your memory…
It’s worth pointing out that a motherboard typically sets aside another 256MB-512MB for other devices in your system (eg hard-disk IO), so Windows will recognize even less ram than the article suggests.
This means that with a SINGLE 8800GTX Windows will only recognize 2.75 or 3GB of ram, and with 2 it will probably only recognize 2GB.
Add to that the fact that 32-bit Windows will only allocate 2GB of ram to a single program anyway, so having more ram than that with 32-bit Windows is fairly pointless.
Using the /3GB boot.ini option will change it to allocate up to 3GB of ram to (supporting) programs, but only leaving up to 1GB for Windows. An 8800GTX reacts badly to only 1GB of system address space, because it allocates large amounts of ram in this area (presumably mapping it to the graphics card’s dma area, it certainly doesn’t show up as used in Windows). With only 1GB available this often fails, which results in the drivers DISABLING hardware accelerated 3d. Not nice.
There used to be a boot.ini option (/PAE) which allowed 32-bit Windows access to the “hidden” ram when it was running on a 64-bit cpu/chipset, but this was removed in SP2 because support for it was horrific. It required 32-bit drivers to support 64-bit memory addressing, resulting in an ugly hybrid between 32-bit and 64-bit. Considering how bad pure 64-bit drivers were before SP2, you can appreciate the problems it had.
hello i,m yakout from egypt