Mistika Ultima permits to use a second NVidia GPU for these purposes:
- Background rendering
- BatchRender (processing render jobs in the render queues)
- Playback cache processing (a particular case of the BatchRender)
- Totem rendering (rendering the same clip with both GPUs at the same time, effectively agregating their performance)
- Mistika Copilot ( creating a second Mistika seat using on the second GPU). Requires Mistika Ultima v8.7 or later.
- z820 and z840 workstation, with 1.250 Watt PSU. Only z820 and z840 workstation models are supported by SGO for multiGPU.
- GPUs: In general you can mix any 2 GPUs of the Quadro Kepler, Maxwell, and Pascal series, or even gforce models from the same generations. However, at the date of this document the only configuration that has been tested and is officially supported by SGO is a Quadro P6000 for the main GPU + Quadro P4000 as second GPU. SGO engineers do not have test systems with different configurations than that one, so they can only offer very limited help in case of problems with other combinations.
1 - First install the NVidia driver required for the most modern of your GPUs. If the second GPU is more modern than the existing one it will not work with your previous driver, so you should do the driver upgrade before installing the GPU board. Otherwise the system may fail to boot in graphics mode. Also, make sure that both GPUs can work with the same driver, as only one NVidia driver can be installed. For this reason you can not mix very modern GPUs with very old GPUs that are alrady discontinued by NVidia, as no driver version will be able to handle both GPUs.
2 - Install the new GPU. Please note that it will probably need a power cable for it. And also check that the Power supply has enough watts for all the boards in the system. Please note that countries with 125V current have reduced effective wattage compared with 220V current. If max power is exceed the system may auto-switch off or reset randomly, or it can even fail to go into graphics mode.
3 - Boot the system and open mConfig. It will offfer to activate the multiGPU setting, which will do the following:
- It will create a special /etc/X11/xorg.conf supporting the two GPUs, plus adding a virtual display for the second one. (a reboot will be needed to take effect)
- It will create a second totem render node in the local system. (You can also do it manually in the totem tab)
- It will modify the mistika launcher (MISTIKA-ENV/bin/mistika) to redirect render jobs to the second GPU when mistika is open, or to alternative between the two if it is closed.
- By default (no user action required), if Mistika is opened it will render all the background jobs in the second GPU. While the foreground render will still use the main GPU.
- All external render jobs started with "mistika -r " command line are considered background renders and follow the above rule. This means that the BatchManager will only use the second GPU when Mistika is open. This is also true for the playback cache, which is a special queue of the BatchManager.
- When Mistika is closed, the main GPU is prioritized for launching the next render job. The second GPU can be also used when the main one is busy ( to do that, just declare two render nodes for the same system ).
- To use both GPUs at the same time for the same render, select mistika .js as the render format and activate the Totem button in the render panel. (also make sure that mConfig->Totem is activated and it has one render node for each GPU)
Configuration changes and troubleshooting
The NVidia hardware autodetection (GPU and monitor model) only works single GPU configurations. If you want to reconnect a monitor to another port, or to connect a different monitor model, or to make any change to the GPU slots, then you should first deactivate the mConfig->MultiGPU , then do the hardware change, and then boot and reactivate multGPU again. Otherwise the system may fail to boot in graphics mode.
If you get into a point where the system is not booting into graphics mode anymore (as per the above example), then you will need to use the text mode to delete the /etc/X11/xorg.conf file to get back to the default configuration. ( you can find how to use the text mode for doing it in this document )
Mistika Copilot and improved background render:
The "Mistika Copilot" is a new feature in Mistika 8.7, which permits to add a second dedicated desktop (with dedicated monitor, keyboard, and mouse) for running a second Mistika session in the second GPU.
The above instructions do not describe the "Mistika Copilot" activation process , but are an important requisite BEFORE installing it.
Mistika Copilot requires CentOS 7.2 operating system. It is not supported on Suse11 systems.
If you plan to use the Mistika Copilot function, first follow the above procedure (also having the copilot monitor connected to the second GPU) , but do not activate the Copilot function until you have tested that the 2nd GPU is fully working for background rendering and that the system is booting correctly and stable. Otherwise it will complicate diagnostics and make difficult to revert changes. Then, when the 2nd GPU behaviour is fully tested activate the Copilot seat in mConfig and follow instructions.
Note. The background render behaviour can be improved by activating Mistika Copilot, even if you do not plan to use the Copilot sessions at all. This is because it will create a totally independent X-session and a second desktop for the second GPU. This means that the main seat will not experience any interference from any kind of processes running in the second GPU, as the desktop and X resources will not be shared anymore.
Note: Please note that even if the two GPUs will not interfere some other resources are still shared, including the RAM, CPUs, and the storage. If the dual GPU performance is not as expected then you will need to check which of those parts have become the new bottleneck. An easy way to check it is to open the nvidia-settings and system monitor (both available in Edit->Extras panel ) to see if there is any component (GPU, CPU, RAM) being used to near full capacity. If none of them are saturated then check that the storage can deal with the total requested bandwidth.