TG2 affinity built-in support

Started by Rudolfking, March 21, 2012, 08:04:03 pm

Previous topic - Next topic


It would be a great idea to implement into a future release of Terragen 2 the (automatic) processor affinity support. I mean all the render threads should wire themselves to a specified core (logical processor). This boosts performance, because (i) turbo core, turbo boost technologies can increase core speed per logical processor if only a few are used (ii) cache coherency remains, so frequently used data of a specific thread remains in L1-L2 caches, moving between the cores' caches (or L3) is unnecessary.
Affinity to a process (not thread per process) can be set manually (via Task Manager in Windows) per core, but cache problem still remains (no setting per thread). The OS places the same thread on different cores in millisecs, however, there is some "soft affinity" (it tries to keep on a specfic core), but no "hard affinity" (specific thread 'must' stay on a logical core in this scenario). This is a fairly old processor scheduler solution, and new hotfixes for Win7 (will be included in Windows 8 ) change this old scheduling method. These fixes and improvements are really important when using new AMD processors (Bulldozer architecture) - eg. Win7 hotfix is only available to those processors.
So if I have 6 cores, Terragen 2 uses only 3 (almost end of render), turbo boost technologies do not work, cache trashing is present. Manual restriction (tgd.exe to 3 cores) keeps the 3 threads switching the 3 logical cores, killing cache...
The best solution should come from the Terragen 2, not outside.
Is there any plan to implement this (I think, fairly simple) feature for future release?


Hi Rudolf,

We don't have any plans for this at the moment but it's something we will take a look at as we assess performance.