Shows wrong amount of RAM

Started by dhavalmistry, September 19, 2007, 03:35:20 PM

Previous topic - Next topic

dhavalmistry

I have 4GB of RAM and when I go to my computer, it shows 3.25 GB of RAM

I am using Windows Vista 32-bit

any ideas???
"His blood-terragen level is 99.99%...he is definitely drunk on Terragen!"

Oshyan

I believe this is a fairly widely known "problem". Somewhere, on some computer box, or in a manual, or... somewhere... it should say something like "Note: some memory will be reserved for system functions. If you have 4GB of memory installed, your operating system may report less." A quick Google search ought to validate that. I'm sure there's more to the explanation but I do know that under any 32 bit Windows OS you're going to see that limitation.

- Oshyan

Will

yea the 4 gigs only show up in 64 bit I think. I too found this out the hard way.
The world is round... so you have to use spherical projection.

reck

That's right it's a limit of 32 bit OS. If you want to use the full 4 gig (and more) you'll need to move to a 64 bit OS.

Will

which is sora strange for me, I'm running a 64 processor(s) but not 64 windows. God damn you Dell.
The world is round... so you have to use spherical projection.

BlueRose

Its to do with the overhead that your PCI bus and other things has, and the fact that a 32bit OS is not designed to support 4GB memory.  For proper 4GB support you have to upgrade to a 64 bit OS.

Not a Dell thing, its a Windows thing

joshbakr

I ran into the same thing, however mine with 4 1 gig sticks registers 3.4 gig of ram because of overhead like said earlier. I called the manufacturer of my mobo and was told if I put two 2gig sticks in I would register 4 gig. Haven't tried it though.

andytw

Strictly Windows (or any other 32 bit OS with this issue) is not actually reserving the memory for itself, but is reserving the "Addresses" which would be used by that memory for it's own use.

A 32 bit OS can only directly use 4GB of addresses and things such as the PCI buses, graphics card, sound card, disk drives etc all need addresses so the OS keeps some for its own use to prevent programs from mis-using these addresses and causing crashes.

There is a technique called "Physical Address Extension" which would seem to offer hope of using the full 4GB of RAM under Windows 32 bit but Microsoft has limited XP/Vista to a maximum of 4GB of physical address space for stability reasons.

dhavalmistry

Quote from: andytw on September 22, 2007, 02:31:07 PM
Strictly Windows (or any other 32 bit OS with this issue) is not actually reserving the memory for itself, but is reserving the "Addresses" which would be used by that memory for it's own use.

A 32 bit OS can only directly use 4GB of addresses and things such as the PCI buses, graphics card, sound card, disk drives etc all need addresses so the OS keeps some for its own use to prevent programs from mis-using these addresses and causing crashes.

There is a technique called "Physical Address Extension" which would seem to offer hope of using the full 4GB of RAM under Windows 32 bit but Microsoft has limited XP/Vista to a maximum of 4GB of physical address space for stability reasons.

would it be safe to do this technique??
"His blood-terragen level is 99.99%...he is definitely drunk on Terragen!"

andytw

Quote from: dhavalmistry on September 29, 2007, 11:33:25 AM
Quote from: andytw on September 22, 2007, 02:31:07 PM
Strictly Windows (or any other 32 bit OS with this issue) is not actually reserving the memory for itself, but is reserving the "Addresses" which would be used by that memory for it's own use.

A 32 bit OS can only directly use 4GB of addresses and things such as the PCI buses, graphics card, sound card, disk drives etc all need addresses so the OS keeps some for its own use to prevent programs from mis-using these addresses and causing crashes.

There is a technique called "Physical Address Extension" which would seem to offer hope of using the full 4GB of RAM under Windows 32 bit but Microsoft has limited XP/Vista to a maximum of 4GB of physical address space for stability reasons.

would it be safe to do this technique??

As far as I know the only 32 bit windows which allows you to use PAE to fully access 4GB+ of RAM is Windows Server.

However even if you have a copy of Windows Server to try there is no guarantee that programs will run correctly using PAE.
As I understand it, the reason Microsoft imposed the 4GB address limit on 32 bit XP/Vista is that if a program is not written to the correct standards, then it is likely to cause a crash if it encounters an address outside the "normal" 4GB limit for 32 bits.

The only way to access all 4GB RAM under XP/Vista is to go 64 bit. 

Tangled-Universe

So let's say I have a quad-core with 8 GB of RAM and I'm running XP 64-bit.
I can run 4 instances of TG2 seperately on each core (by selecting affinity).
Will each instance of TG2 have about 2 GB of RAM available for the render?
Can XP 64-bit address/divide the 8 GB of RAM to the 4 instances of TG2?

Oshyan

Quote from: Tangled-Universe on December 06, 2007, 05:58:24 PM
So let's say I have a quad-core with 8 GB of RAM and I'm running XP 64-bit.
I can run 4 instances of TG2 seperately on each core (by selecting affinity).
Will each instance of TG2 have about 2 GB of RAM available for the render?
Can XP 64-bit address/divide the 8 GB of RAM to the 4 instances of TG2?

Theoretically yes, although the actual division of RAM may not be that equal and of course the OS and other services also uses some.

- Oshyan

Tangled-Universe

Ok thank you Oshyan. I'm asking this becausing I'm saving (a lot of, obviously) money for a quad-core render machine. I'd really like to do some high-res renders with populations. So approx. 2GB per instance would be favourable I guess.

So in relation to this, and I don't want to run into future things too much, is it already sure that the soon upcoming update will support multi-core machines?

Oshyan

The final release will support multi-core. This would obviously remove the need to split up resources between instances of TG2.

- Oshyan

Moose

Quote from: Oshyan on December 08, 2007, 02:07:18 AM
The final release will support multi-core. This would obviously remove the need to split up resources between instances of TG2.

I've got a query on this...

When an application is multi-threaded, I've read that performance never ramps linearly - so a quad core wont be 4x faster (how much slower I guess(??) would depend on the tasks' suitability to being threaded, and programming skill - but potentially things could be significantly slower). If this is the case it would surely be more efficient to render with 4 separate instances split-up intelligently, rather than 4 cores munching away on 1 complete instance? Or is there something I'm not considering?

Don't really know much about it other than random bits that I've read, but am curious as I'm about to embark on the multicore adventure myself. :)

Oh, and I was wondering - as Matt currently has his nose deep in the innards of the renderer, do you know if he's going to be implementing any of the new SSE4 instruction set which Intel's new chips are now sporting... assuming any of them are of use to the rendering process, and that you are allowed to say, of course. :)