Multiple GPUs Configuration
In order to perform at their best, MIST and ICE requires a computer system with at least to GPUs.
In a multi-GPU setup, there will always be a primary GPU that will be used for user interface display and one or more secondary GPUs that will be used as accelerators. Please note that it is possible to mix architectures and product lines in the same setup, within some limits. The following table shows the possible setups:
By default all GPUs present in the system are configured both for processing and graphics (used for display), with the exception of the Tesla devices that are exclusively designed for processing.
Power management considerations
Most systems are configured for a moderate power consumption and therefore the various devices present in the system will perform to their best according to the power configuration of the system (usually set in the BIOS and operation system configuration panels).
For optimal performance, the power management features of the system must be set on the maximum of possible. Also power consumption management must be turned off in order to avoid the drivers to put the devices to sleep when not used.
GPU Role Assignment
Once the GPUs are installed in the system, their role must be defined in the Nvidia Control Panel (nvcpl).
The primary GPU (the one driving the displays connected to the system), must be excluded form the CUDA enabled devices. The reason for this is that if the primary device is not excluded, then it will also be used by the various CUDA enabled programs and the device will have to share is resources (memory and computing capabilities) between the display(s) and CUDA programs, resulting in a loss of performance (usually 50%).
Please note that the slowest GPU will always drag down the overall performance. Therefore if the primary GPU is CUDA enabled, the overall processing performance will drop
Secondary GPUs must be set for CUDA processing only and excluded from any graphics processing.
The role assignment is defined in the Nvidia Control Panel in the Manage 3D Settings tab:
- click on the CUDA-GPUs dropdown list to reveal the available installed GPUs in your system:
Remember to only check the devices that are to be used for CUDA programs and exclude the primary GPU (the one that your display is connected to).
Then in the OpenGL rendering GPU drop down list, select the primary GPU like in the following example:
This setting is available with a Quadro card or an NVS card only.
Mixing GPU architectures
While its possible to mix architectures in the same system, it is strongly advised that the following rules must be observed, when using Quadro/GeForce configurations:
The Quadro card should be used as a Primary GPU and the GeForce card(s) should be used as Secondary GPU(s).
Performance limiting factors
Among the various settings that affect the performance, one should consider the Vertical Synchronization (VSync). Vertical Synchronization forces the UI screen refresh to be synchronized with the display monitor refresh rate. By default modern computer monitors are set to a 60Hz or 59.94Hz refresh rate. This means that the software cannot change the contents of the screen at a different rate. This constraint is enabled or disabled by the Vertical Sync parameters in the driver settings.
In order to allow the UI GPU to reach its maximum processing performance, the Vertical Sync must be set on Off, like shown in the screenshot below: