AWS Thinkbox Discussion Forums

How does GPU affinity works?

Hi, can anyone please explain how GPU Affinity works?

Uses one card or pairs?

Opens several batch renders on the same machine?

How does it handle if 2 cards are rendering using Maya, another 2 using Softimage and another 2 C4D?

Cheers!

GPU affinity is per Slave configuration:
docs.thinkboxsoftware.com/produc … u-affinity

So, as a Slave can only render one job plugin at a time, each Slave (say in the case of 3 x Slave instances to continue your example) would pickup each of the application plugins you mentioned (Maya, XSI, C4D). Note, for C4D - GPU affinity support, say for Redshift - you will need the latest BETA version of Deadline as that added support for C4D-Redshift GPU affinity. So…a quick summary of Slaves and possible graphics card layout on a single machine, assuming you have a machine with 7 graphics cards in it:

(assume gpu:0 is the monitor card and not to be used to compute)
Slave 1 (pool: Maya) - gpus 1,2
Slave 2 (pool:C4D) - gpus 3,4
Slave 3 (pool:XSI) - gpus 5,6

You may need or want to change the pool, group, limit, etc config to control how these jobs are picked up by Slaves.

So, in the case of Slave 1, it would only pickup Maya jobs and only use GPU’s with device slots of 1 and 2. This is GPU affinity.

Another method is not to use individual GPU “override” affinity, but use our built-it “Concurrent Tasks” per Slave, where we automatically carry out a mapping of 1 Concurrent Task (say, an instance of MayaBatch) to 1 or more, GPU devices slots. More info here:

Maya:
docs.thinkboxsoftware.com/produc … ic-options

XSI:
docs.thinkboxsoftware.com/produc … er-options

Thanks for the explanations Mike.

No worries. Let us know if you have any more questions, etc.

Just one more thing. When you test C4D+Redshift you use C4D Command Line render?

IIRC, we tested both C4D Batch and Command Line.

Ok

Do you mean Team Render and Command Line or C4D brings a Batch Render also like Maya?

Deadline has an exclusive BatchMode for C4D. Available in 8.1 beta only currently. So, yeah, C4D Command Line and the yet to be released, C4D Batch.

Cool I’m on the Beta I can try that. How does it work exactly, does it use Team Render, a C4D Command Line License or we can avoid both? Do we need to have C4D licenses on very render node?

Cinema4DBatch plugin uses C4D command line render licenses. Probably best to post any further questions about beta software on our beta forum. Thanks. forums.thinkboxsoftware.com/viewforum.php?f=211

Right tks!

Hi Mike,

going back to my GPU Affinity querstion.

You say a Slave can only render a job plugin.

So if we have 1 node with 8 GPUs we can’t use 2 GPUS for Maya, 2 GPUS for XSI and the resto for C4D for example?

Then if we are using Maya only, just as an example, can we send different jobs to individual groups of 2 GPUS? All in the same node.

Tks!

A single Deadline Slave instance can only render one job at once. So, for a single machine (node) to render 3 different job plugin types at the same time, then you will need to run 3 x Deadline Slave instances. Each Deadline Slave instance could be configured to use a different set of 2 x GPU slots. Multiple Deadline Slaves instances on the same node (machine) will only cost you a total of 1 x Deadline Slave license. Was Deadline Slave licensing the concern here?

Hi,

Not at all, I was not aware of that.

Do I need to install Deadline Slave again for that?

Late to this thread, but wanted to add some stuff that we have learnt about running a slave with multiple gpu’s.
we have nodes with 4 gpus each.

We found that it works better to have one job at a time running via multiple concurrency and gpu afinity.
because deadline , doesnt keep track of how much memory or ram a job needs to use, it allows our wranglers to throttle the jobs max concurrency rather than starting and stopping slaves constantly.

Also just because its a gpu renderer, doesnt mean it doesnt use system memory or system cpu.
Running via concurrency allows us to easier configure a job to run on one of theses machines in the following configuration:

4 tasks with a single gpu each
2 tasks using 2 gpu’s each
1 task using 4 gpus.

This way, if we know that a job / task/frame, requires more resources, we can switch the job to one of these configurations on the fly, no slave changes.
for example we have some frames right now on the farm, where 4 tasks on a single node is a little too much, so its running in a config of 3 tasks with one cpu each, this means for now one of the gpu’s are not in use. not ideal, but much better than all the frames failing …

cheers
Kym

Not at all. Slave license de-dup is handled internally with the app. It should just work.

Sure but when you say

“for a single machine (node) to render 3 different job plugin types at the same time, then you will need to run 3 x Deadline Slave instances. Each Deadline Slave instance could be configured to use a different set of 2 x GPU slots.”

You mean I will need to run another Slave instance? How?

Tks Kym, amazing info!

I think I’ve found the answer Mike, tks.

deadline.thinkboxsoftware.com/fe … -rendering

Privacy | Site terms | Cookie preferences