Does Cycles support multiple GPUs?

Does Cycles support multiple GPUs into RH6?
If yes what is the maximum of concurrent GPUs supported?

Yes

I suppose the amount you can fit on your motherboard.

Do they all need to be identical? Or can one be, for example, a Quadro, another a Radeon, a third an Intel built-in?

Through the current interface it is not possible to have a combination like that (and the Intel built-in won’t show by default either - blacklisted since Intel OpenCL tends to crash hard). But if you don’t mind doing some simple XML settings file surgery you can have the cake, and eat it too.

Here a session I just started with my CPU + Radeon Pro WX9100 + GTX 760 + GTX 1060:

To do this you first run RhinoCycles_ListDevices and note the device indices the list gives. Before the XML file hackery the output on my machine is

	Device 0: CPU > Intel Core i7-7700 CPU @ 3.60GHz > 0 | False | True | CPU
	Device 1: OPENCL_AMD Accelerated Parallel Processing_Radeon (TM) Pro WX 9100_03:00.0 > Radeon Pro WX 9100 > 0 | True | True | OpenCL
	Device 2: CUDA_GeForce GTX 1060 6GB_0000:04:00 > GeForce GTX 1060 6GB > 0 | False | True | CUDA
	Device 3: CUDA_GeForce GTX 760_0000:05:00 > GeForce GTX 760 > 1 | False | True | CUDA

Close all Rhino 6 instances.

Now find and edit the file %APPDATA%\McNeel\Rhinoceros\6.0\Plug-ins\RhinoCycles (9bc28e9e-7a6c-4b8f-a0c6-3d05e02d1b97)\settings\settings-Scheme__Default.xml in your favourite plain text editor. Look for, or add the entry <entry key="SelectedDeviceStr"> and give it as content the device indices separated by comma, in my case <entry key="SelectedDeviceStr">0,1,2,3</entry>.

image

Save the file. Start Rhino.

Now you should be able to switch to Raytraced such that when you click in the HUD on Raytraced (Cycles) it will show you your selected render device(s).

The command RhinoCycles_ListDevices now will show the multi-device as well. On my machine:

Command: RhinoCycles_ListDevices
We have 4 devices
----------
	Device 0: CPU > Intel Core i7-7700 CPU @ 3.60GHz > 0 | False | True | CPU
	Device 1: OPENCL_AMD Accelerated Parallel Processing_Radeon (TM) Pro WX 9100_03:00.0 > Radeon Pro WX 9100 > 0 | True | True | OpenCL
	Device 2: CUDA_GeForce GTX 1060 6GB_0000:04:00 > GeForce GTX 1060 6GB > 0 | False | True | CUDA
	Device 3: CUDA_GeForce GTX 760_0000:05:00 > GeForce GTX 760 > 1 | False | True | CUDA
	Device 100000: MULTI > Multi Device > 100000 | False | True | Multi
----------

Note, this isn’t very much supported. In theory it should Just Work, but YMMV.

Also note that with our current revision of Cycles (we’re about 10 months behind upstream) we don’t get the full power of all combined devices yet - we’re bottlenecked by the slowest device. But I imagine that at some point I might be able to have some time to sync our fork with upstream changes, so that we should be able to get Even Faster Renderings.

1 Like

My case couldn’t fit the third GPU very well, so I have a PCI-Ex riser to allow me have that extra card in:

Not beautiful, but it works. From left to right you can see the (hanging) GTX 760, the GTX 1060 and the blue Radeon Pro WX9100.

1 Like

Well, I guess that answers my question! :smile: Way to go, Captain Video!