Hi all,
I've upgraded my computer from a 2 core\2 thread, 4 GB memory system to a 4 core\8 thread, 8GB memory system. Can anyone advise me on what the best settings are for the renderers -> advanced tab?
I think the two settings I should be looking at are-
min\max threads
Size of subdiv cache.
For the min\max threads should I just put 8 in both? Does Terragen work well with hyperthreading?
What about the subdiv setting, is there some kind of calculation as to what value I should use?
Thank you.
The default subdivide cache is 400 MB. So 4 threads would use 1600 MB, 8 threads 3200 MB. You could probably use 6 threads with 8 GB RAM and normally not have a problem.
The min/max thread setting I would leave at the default. T2 will scale the bucket size to fit what it needs for RAM. I think Seth and Martin (TU) have recommendations here somewhere. There may be something in the sticky section also.
Hi njeneb, thanks for your reply.
So would you say using the default (400MB) is optimal, why not 500MB or more, would I get any benefit? Also why do you suggest I only use 6 threads (2400MB) instead of 8 (3200MB) when I have 8000MB to play with?
So on the min/max threads setting there is no benefit to changing the default value at all?
Subdivide cache of 400MB does NOT mean 400MB/thread. It's 400MB allocated for the number of threads active.
The lower limit is 50MB and normally is 100MB/thread.
In newer versions TG2 figures out the number of possible cores/threads and adjusts the cache accordingly.
Increasing the cache can give a small performance increase, but don't expect it to be very noticeable. Adjusting rendersettings is still the most effective way.
My system also has 4 logical cores and 8 threads.
When I render and don't need the PC I use 7 threads minimum and 8 threads max. This kicks in the hyperthreading.
Since I have 16GB of RAM I always allocate 200MB/thread, so I use a 1600MB cache. Just because I can, nothing else.
You could do that too, as long as your scene is not too "heavy" (extreme GI settings/resolution/massive populations), otherwise you could get a performance dip.
If I do need the computer for surfing and watching a movie I use 6/7 as setting, still got some hyperthreading on some cores, but still some muscle-power left for these simple tasks.
Cheers,
Martin
I was hoping I might get a reply from you Martin :D
I've just checked and Terragen is defaulting my cache to 1200MB, so it's giving me 150MB per thread. After reading your reply I thought about changing my cache to 1600MB as well, but then I read this.
QuoteYou could do that too, as long as your scene is not too "heavy" (extreme GI settings/resolution/massive populations), otherwise you could get a performance dip.
Why would a larger cache actually decrease performance rather than helping it? Also wouldn't you say that most of your scenes are heavy in which case aren't you going to see this performance dip you mentioned with your settings?
Basically, if your scene is very memory-consuming and you're already reaching for nearly 8GB then larger than necessary cache sizes may allocate that much memory that you'll exceed the 8GB limit. TG2 will start to page memory which is far slower.
Keep in mind that it takes quite extremes to reach this.
Very high detail (0.9-1), high GI relative detail (3 or higher), billions of polys and huge resolutions (>3K wide with other criteria) are parameters which can result in TG2 consuming much memory, likely more than 8GB eventually.
As usual, it depends on your scene so you need to test that every time.
Cheers,
Martin
Thanks Martin. Experience pays. I was curious about this also. All I had to go with was by using the resource monitor on my machine. (Not a great example for multi-core processing!)
Hi,
I've recently written up a bit about the Advanced tab of the Render node and managing the number of threads and subdiv cache:
http://www.planetside.co.uk/wiki/index.php/Render_-_Advanced_Tab
I haven't really mentioned Hyperthreading in there yet. To sum up, don't worry about it :-). You may remember that in the past we didn't recommend using Hyperthreading, or rather just using as many threads as you had real cores. However on Intel chips newer than the Pentium 4 that have Hyperthreading it is much better than it was and we now treat virtual cores just like real ones. If you have a 4 core machine with Hyperthreading then TG2 will detect 8 cores and happily use all of them. 8 cores won't be twice as fast as 4 cores in this case but it will be handily faster.
Reck, you don't need to change any settings for your new machine. TG2 will automatically detect you have 8 cores and use them during rendering. You might want to experiment with the subdiv cache setting but again it probably isn't necessary, particularly if you are using a 64 bit OS.
Regards,
Jo
Hi Martin,
Quote from: Tangled-Universe on October 31, 2011, 03:56:41 PM
When I render and don't need the PC I use 7 threads minimum and 8 threads max. This kicks in the hyperthreading.
<snip>
Quote
If I do need the computer for surfing and watching a movie I use 6/7 as setting, still got some hyperthreading on some cores, but still some muscle-power left for these simple tasks.
I would do this a little differently. You don't need to change the minimum threads setting in these situations, only the maximum setting. If you have 8 cores then your first scenario TG2 will always use 8 threads and in the second scenario it will always use 7*. The minimum setting has no real effect.
I'm not actually certain there's a lot of situations where the minimum thread setting is useful. The main thing it's useful for is forcing TG2 to use more threads than the number of available cores, and I can't think of many cases where you'd want to do that. I know some people have tried it and believe it has improved render times but I think that would depend heavily on the scene and the jury is still out on the idea in general. My feeling is that the minimum setting is really there for the sake of completeness.
*Well, to get technical I suppose it would use less threads if your image size and/or bucket size settings meant that less than the maximum number of render threads would be created. That's a nitpicking side issue though :-).
Regards,
Jo
Yes you're right Jo. The minimum thread setting of 6 or 7 is something from the "old days" where we needed this to have HT kick in.
At the moment you indeed only need to specify the max number of threads.
So it's either default 1-16 (and TG2 automatically creates 8 threads) or 1-7 (to leave some CPU cycles for surfing/movies).
Got stuck in an old habit, thanks for digging me out ;)
Cheers,
Martin
Got some good detailed answers here. Thanks a lot njeneb, Martin and Jo.
My machine can run two threads for rendering very well, if a bit slowly. I think the slow rendering is more a system bus and memory clock speed issue. I currently use a Pentium 4 HT 3.0 GHz.
Still this topic answers questions I will/would have asked in a week or two.
Henry, will you get a new machine in ~2 weeks?
That would be cool and especially a great creative boost for you!
Cheers,
Martin
Some things look really great in that new node reference list on the PS Wiki!
Especially; Translucency shader, Layered shader and Erosion shader! :)
If I have all the cables, I'll be on an I7.
Translucency shader, Layered shader and Erosion shader; I missed these somehow. I can think of half a dozen things to use these on with out straining my brain cell.
http://www.planetside.co.uk/wiki/index.php/Translucent_Shader
http://www.planetside.co.uk/wiki/index.php/Layered_Shader
http://www.planetside.co.uk/wiki/index.php/Erosion_Shader
Nice!
I can imagine stuffing a billion shaders inside that layered shader and that would only take up one channel! Another billion for channel 2, and again for channel 3, etc... That is really a dream come true!
Hi,
Not to be the bearer of bad tidings but I don't think those particular nodes are still under development, at least note in those particular states. They're not available in the current alphas. They must have slipped through when the node docs were imported to the Wiki.
Regards,
Jo
Strange that those entries remained, I thought I'd gone through and removed deprecated nodes. In any case don't get too excited, in general these are development experiments that didn't pan out. As Jo said, if this functionality is still in development or already available, it will be in a different form.
- Oshyan
Gotcha! :D