Skip to main content
Skip table of contents

How to Use Multiple GPUs in IGEL OS 12

If you run IGEL OS 12 on a device with multiple physical GPUs and multiple monitors, you need to check GPU configurations and you may need to modify them to successfully operate all connected screens. This article provides general explanation and the necessary configurations for a multi-4K monitor setup.


Primary and Secondary GPU in Linux

To find the right configuration, we need to understand how Linux uses multiple GPUs for an extended desktop across multiple monitors. When several screens are in use, the Linux driver merges multiple physical GPUs into one logical X screen by having one GPU (the primary GPU) doing all the rendering for all the screens. The secondary GPU only receives a copy of the frame buffers that it needs to display.

The internal GPUs of the devices are usually slower, thus the GPU on the add-in card (from now called the external GPU) would be better as primary GPU, because the primary GPU does all the rendering. However, if the external GPU doesn’t have sufficient memory (e.g. minimum 2GB VRAM) it may run out of memory when asked to render for all connected screens (especially if 4K screens are involved). In this case, it is better to configure the internal GPU to have more memory and use it as the primary GPU despite the performance loss - otherwise, some screens may remain blank.

Example Configuration for the Use Case of Six 4K Monitors with HP Elite t755

When you are connecting six 4K monitors to a HP Elite t755, you need to consider GPU settings to successfully operate all screens. Go through the decision tree and perform the necessary configurations described below.

  1. Enable GPUs from different manufacturers under System > Registry using x.drivers.<hw>.use_modesetting, <hw>. amdgpu|ati|intel|nouveaux|nvidia|...

If the GPUs use different drivers (usually different vendors, e.g. Intel and Nvidia), you need to turn on modesetting_driver on all involved GPU drivers.

For more information on registry parameters, see Registry in IGEL OS 12.

  1. Check the VRAM of the external GPU. If the external GPU has less than 2 GB VRAM, it should be operated as a secondary GPU. This way, it only needs to maintain the frame buffer for the two displays attached to it.
    To configure the external GPU as the secondary GPU:

    1. In the configuration dialog go to System > Registry > x > drivers > swap_card0_with_card1.

    2. Enable Make the secondary graphic card to the primary one.

Configuring this in the BIOS does not yield the expected result because the BIOS only defines which GPU to use for boot messages.

  1. If the internal GPU is used as primary GPU, you need to assign 2GB VRAM to the internal GPU to guarantee that it has enough VRAM to render all screen content. This needs to be done by forcing the corresponding setting in the BIOS:

    1. Start the HP BIOS (Setup Utility) by pressing F10 during boot.

    2. Navigate to Advanced > Device Options > Auto.

    3. Then press the key “cursor left” and the word Auto will change to Force.

    4. Now navigate one line down to UMA Frame Buffer Size and change the 512MB to 2048MB.

    5. Leave the Device Options by pressing [F10] for Accepting the change.

    6. Then navigate to File > Save Changes and Exit.

    7. Press [Enter] to save this change.

If the internal GPU doesn’t have enough VRAM, the driver will allocate system memory to alleviate the situation. This helps at first but fails during a suspend/resume cycle when the driver tries to re-allocate the system memory. As a result, the two monitors connected to the external GPU remain dark.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.