Graphics card address space question
Hi, might be a stupid question but anyways: If I get a (say) 1GB 3870x2, would that mean that it would use up 1GB of main RAM for memory addressing? I have only 2GB in my budget Asrock 4Core VSTA mobo (and it doesn't take any more). Would this therefore compromise total system performance to the extent that opting for a single 512MB card is actually the more sensible option? Using Vista 64, with Core2 E4300 @ 2.4GHz.
Sorry for my ignorance :confused:
Re: Graphics card address space question
No, the limitation of 'accessible'/addressable RAM in an OS is down to the OS.
Your are using Vista x64, which is 64-bit aware, and as such can address 2^64 individual locations, which is somewhere up in the range of...a lot, I just haven't a calculator handy and can't remember the value!
Given this, every location that needs an address, be it RAM/GPU/BIOS/IO will get one without issue.
You won't have any issues using that card with any amount of RAM your machine can support!
Hopefully that helps (and I've got it right!) :)
Re: Graphics card address space question
Firstly, a 1GB graphics card doesn't use up main RAM. It has its own RAM on board.
The problem for people with 32 bit OS is that a 32 bit CPU can only address 4GB, so with 2GB ram + 1GB graphics there isn't much left for stuff like the BIOS and any tricks the operating system might want to pull with addressing to speed things up.
64 bit OS removes that (for now ;) ), I make 2^64 locations roughly 18 million terabytes.
As that is a bit big, Intel don't bother bringing that many address pins out on their chipsets and currently limit the implementation to somewhat less. Still, I think you get the point that the OS should find somewhere to put it :)
Re: Graphics card address space question
The other problem is arguements between directX9 and directX10 as to who manages the virtual addressing for video memory. On DX9 applications this is done by the application, on DX10 this is done by the OS. Run a DX9 application on a DX10 OS and you can get double the amount of virtual address space used. This is a common cause of failure to run DX9 games such as The Witcher and Test Drive Unlimited under Vista. MS released a hotfix to work around this problem and if you've got a gfx card with a large amount of ram I really recommend using it:
Virtual address space usage in Windows game development
Re: Graphics card address space question
Thanks guys for the pointers. I still getting my head round it but will get there in the end I hope!
Dances with Unix: Yes I understand that the GPU has its own memory (frame buffer) but for some reason I thought it had to be 'mirrored' in main (system) RAM whilst in use and I think that this was the bit (from link provided by kalniel) that I was thinking of:
Existing games and other graphics applications frequently allocate virtual memory for a copy of the video memory resources that the application uses. The application uses this copy to restore the display quickly if the contents of video memory are lost. For example, the application uses this copy if the user presses ALT+TAB or if the user puts the computer in standby. Typically, the DirectX run time manages the copy on behalf of the application when the application creates a managed resource. However, an application can also manage the copy itself. The virtual memory that the copy uses is directly proportional to the video memory resources that the application allocates.
A modern graphics processing unit (GPU) can have 512 MB or more of video memory. Applications that try to take advantage of such large amounts of video memory can use a large proportion of their virtual address space for an in-memory copy of their video resources. On 32-bit systems, such applications may consume all the available virtual address space.
But the article states first:
How much virtual address space is available is not related to how much physical memory there is on the computer.
So as you all say, should be OK with 64 bit Vista. Err, right? :O_o1:
Re: Graphics card address space question
Yes, it's virtual address space - doesn't care what actual ram you've got in there. Either way I would highly recommend the hotfix, as even with 64bit Vista if you run a 32bit application you can get into problems.
Re: Graphics card address space question
Note that you may also need to fiddle about with your BIOS settings to get the memory mapping to work correctly. Even with Vista x64, my machine showed just under 3GB RAM available with 4GB installed until I changed a setting in the BIOS.
I think my board called it "enable memory hole", but I've heard it called "memory remapping" as well. If you install 4GB and don't see the full amount in your x64 operating system, have a look in the BIOS for a setting along those lines, and enable it.
EDIT: blimey, blast from the past. Didn't realise this was from so long ago, sorry for dragging it up again. I keep forgetting that the "related posts" thing is so wide-ranging.
Re: Graphics card address space question
That's OK Barkotron, I think a few people are still confused about this issue anyhow! BTW thought the 'memory hole' thing was something to do with the ancient 640KB machines or, more recently, OS/2.
Still not 100% sure about things, must really do some more research now I've got 4GiB & XP64 on one machine.
Cheers anyway :)