Knowledge Base
Searching in : Article
ID: AR11T01179
Applies to: NoMachine Technology
Added on: 2022-11-21
Last Update: 2022-11-22

Configuring NoMachine to distribute HW encoding workload among GPUs or off-load it to a specific GPU

Since v8, workload for hardware accelerated video encoding can be (i) distributed among all the available GPUs according to a load-balance algorithm or (ii) off-loaded to a specific GPU dedicated to NoMachine. Both ways apply only to NVIDIA GPUs and to hardware encoding (not to VirtualGL).

In order to choose between (i) or (ii), edit the node configuration file (/usr/NX/etc/node.cfg) and configure the  appropriate keys as explained below. Be sure to remove the pre-pending # from the key names. Changes will be effective when creating a new virtual desktop.

How to distribute the workload among multiple GPUs

By default 'GPULoadBalancingAlgorithm none' is set, this means that by default a new NoMachine session will use first available GPU.

Set 'GPULoadBalancingAlgorithm load-based' for making NoMachine to choose the GPU with a lesser workload for each new session.

Set 'GPULoadBalancingAlgorithm round-robin' to distribute the workload of each new session in a circular way among GPUs according to a plain round-robin algorithm.

How to off-load the workload to a specific GPU

Set 'GPULoadBalancingAlgorithm none' and specify by UUID the NVIDIA GPU to be used for hardware encoding in the following key: GPUDedicatedDevice GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx