Jump to content

how to manage ram useage to avoid crashing


Three D
 Share

Recommended Posts

hi, my system is this:

 

OS: windows xp 32bit - 3gb switch enabled with 4gb ram installed

3ds max design 2009 with vray 1.50 sp2.

 

i have a simple enough model with a number of detailed trees/hedges inserted and instanced as vray proxies. to keep ram useage down i'm rendering with basic brute force GI and i've set the dynamic memory limit to 2400mb and default geometry to dynamic. i've also set my buckets to 12 pixels. when i'm rendering i check the task manager and the memory useage always goes over the 2400mb limit i've specified and then crashes. if i use a smaller value like 2100mb the task manager shows 2560mb used and then crashes. it always seems to be using more memory than i specify in the dynamic memory limit.

 

how do i make vray/max use only the amount of memory i specify in the dynamic memory limit? is this even possible?

 

i don't mind slow render times so long as it actaully renders.

 

any help would be very much appreciated.

 

thanks.

Link to comment
Share on other sites

That script that splits the renders up into smaller sections works great for this.

I did a render 8000x6000 and split it into 9 sections, and the Task Manager (with the added field of Peak Memory Usage turned on) showed it used no more than 2.5 gigs of ram.

 

Obviously, this will vary depending upon the scene, but I thought it was pretty cool.

 

Unix can do this, I know.

 

As far as I know, you cannot simply limit how much RAM an application use. You can throttle CPU utilization but not RAM.

 

The amount of RAM on the machine is irrelevant. Your application uses

virtual memory which is paged from disk to RAM by the OS.

 

On 32-bit windows you have a 4gig virtual address space which divided into

2gigs for user-mode code, and 2gigs for kernel-mode code. So your

application (which runs in user-mode) can only access the bottom 2gigs of

the address space.

 

On 64bit windows, native 64-bit apps have a very large address space. 32-bit apps running on 64bit windows in the Windows On Windows64 environment still have a 4gig address space, but since all no kernel-mode code can run in 32-bit mode, you can use the whole 4gig address space.

Link to comment
Share on other sites

Thanks Sandmanninja.

 

Can you remember where you got that script?

 

Also, what is the point of the dynamic limit setting if it is not to limit, in some capacity at least, the amount of memory used?

 

as soon as you set your memory usage to dynamic, the dynamic memory limit means absolutely nothing, because the entire scene is being rendered with dynamic memory. in setting it to dynamic, it's essentially the same thing as making all of your objects proxies, and as far as memory is concerned, making proxies anyway would be a waste of time if the whole scene rendered as dynamic anyway. if you want to limit the memory, set it to static and specify the amount.

 

if you really want to avoid this problem altogether, switch to 64bit max and vray. you'll never want to go back to 32 bit again.

 

you might want to check out the 1 hour video on vray proxies here...it discusses this issue

http://www.cgarchitect.com/upclose/VI/default.asp (week 25)

Link to comment
Share on other sites

since were on the topic let me see if i am getting this right:

 

1) the size of your scene + the size of your exported meshes (proxies) = the amount of RAM max will want to use

 

2) your dynamic memory limit should be set above that size (to prevent dramatic slowdown due to paging or something)

 

3) proxies must be instanced

 

4) displacement increases the RAM consumption a lot in addition

 

5) the easiest rendering process will be irr. map for primary bounce and light cache for secondary (light cache is good at bouncing many rays very quickly)

 

6) if you HAVE to, increase the min. leaf size to 1/2" or 1" to shave memory off tiny details

 

note: the dynamic memory limit is the amount of RAM max will assign to dynamic geometery (proxies) before starting to go back and forth from the disk loading and unloading them, which takes forever, so basically keep the size (in MB of disk space) of your base dynamic geometery (not all the instances just the original exported mesh) below the amount of RAM you have available for the fastest renders, and add a GB or two depending on how much displacement you have

 

 

is this all correct?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...