Results of running NoMachine virtual desktop sessions using Tesla M60

Prepared by: N°:

Approved by: Last modified: Amended: 2016-09-30

Results of running NoMachine virtual Linux desktop sessions using M60

Page 1 of 5 Results of running NoMachine virtual Linux desktop sessions using Nvidia Tesla M60

Prepared by: N°:

Approved by: Last modified: Amended: 2016-09-30

Table of Contents 1. Introduction - The challenge of rendering and displaying GPU-enabled apps 3

2. NoMachine runs 60 Linux remotely rendered, accelerated desktop sessions using 3 Nvidia's Tesla M60 3. Results of encoding NoMachine Virtual Linux Desktops on host with Nvidia's Tesla M60 3 GPU 4. Multiple GPU devices 4

5. The benefits of using hardware acceleration in NoMachine remote desktop sessions 4

6. Additional notes about NVENC 5

Page 2 of 5 Results of running NoMachine virtual Linux desktop sessions using Nvidia Tesla M60

Prepared by: N°:

Approved by: Last modified: Amended: 2016-09-30

1. Introduction - The challenge of rendering and displaying GPU-enabled apps

Accessing graphics intense workloads over remote networks is challenging due to latency and bandwidth requirements which can impact user experience. Thanks to NoMachine's support for GPU-accelerated H.264 encoding provided by the NVENC APIs, complex 3D applications, such as CAD/CAM design, medical, or other GPU-enabled apps are rendered and displayed with the best possible accuracy and performance.

2. NoMachine runs 60 Linux remotely rendered, accelerated desktop sessions using Nvidia's Tesla M60

With NoMachine, you can significantly improve latency, bandwidth, and frame rate, while decreasing CPU utilization and supporting more users per host. NoMachine developers have managed to run 60 concurrent Virtual Linux Desktop sessions simulating real user behaviour on an Intel Xeon server with an Nvidia Tesla M60 card. These results were registered in our labs using version 5.0.53 back in December 2015.

3. Results of encoding NoMachine Virtual Linux Desktops on host with Nvidia's Tesla M60 GPU

To benchmark the impact of offloading the encode process from the CPU to the GPU, the NoMachine developers have also used a video-based workload, consisting in a 1360x768 fullscreen video. Let's have a look at the results on a sample of 10 concurrent sessions running the video.

Host machine

OS: Red Hat Linux 7 GPU: Nvidia Tesla M60 CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz (24 cores) RAM: 125 GB NoMachine Enterprise Server

All 10 sessions were running a fullscreen YouTube video inside Firefox. Results of this test, gathered through the nvidia-smi utility, are presented below:

- GPU overall encoder usage: ~5%

NVENC was using around 5% of its total processing power.

Page 3 of 5 Results of running NoMachine virtual Linux desktop sessions using Nvidia Tesla M60

Prepared by: N°:

Approved by: Last modified: Amended: 2016-09-30

- GPU memory usage per session: ~128 MB

Each NoMachine session was using around 128 MB of video memory.

- CPU usage per session: ~4.25%

Each NoMachine session was using around 4.25% of CPU processing power.

4. Multiple GPU devices

NoMachine is able to use more than one Nvidia device, i.e. when video memory resources run out, NoMachine will start using the next device. NoMachine is currently working on load-balancing the workload between multiple devices (https://www.nomachine.com/FR07N03131).

5. The benefits of using hardware acceleration in NoMachine remote desktop sessions

From the benchmarks above we can see the benefits of leveraging Nvidia's NVENC hardware encoding beginning to emerge. i. Offloading expensive CPU encoding

The general purpose of GPU is to relieve the (CPU) of graphics-related tasks to ensure efficient workload. Using Nvidia NVENC-enabled GPU cards to perform demanding computations will free the CPU from such computations, thus leaving more power available to the CPU to handle other programs running on the computer.

ii. Faster on systems with slower CPU

Slower CPUs may have problems processing the entire screen smoothly, e.g., for smooth H.264 playback of 30 FPS, the encoder has to process data in less than 33 ms. If the computer's processor is slow or busy with other tasks (e.g., encoding audio, background programs, etc.), a system's

Page 4 of 5 Results of running NoMachine virtual Linux desktop sessions using Nvidia Tesla M60

Prepared by: N°:

Approved by: Last modified: Amended: 2016-09-30

resources are soon consumed, thus slowing it down, which in consequence could cause session stuttering in NoMachine remote desktop sessions.

iii. Offloading system memory by using video memory

Video encoders allocate some memory for their own internal processes in order to run. Memory is also allocated for making copies of the screen to analyse and predict pixel changes in previous or future encoded frames. Indeed, since only areas of the changed current frame are encoded compression of data is therefore optimized. More importantly, since hardware encoders keep these screen copies inside their own video memory instead of the system memory, more swap space is available for other running applications.

iv. No need to install additional software

Unlike hardware encoders, software implementations of H.264 codec, e.g., x264, need an additional library to handle H.264 encoding/decoding. NoMachine Server Subscriptions include this library component as part of their feature offering and it installs out-of-the-box. This additional library is available as an add-on for the free NoMachine version and clients: NoMachine AVC Pack. Alternatively, you can build the x264 library from source (https://www.nomachine.com/AR09M00863). For some users having to install things separately can often be cumbersome.

Nvidia devices with hardware-based H.264 encoding have the NVENC encoder built into their drivers, so there is no need to install additional software other than the drivers' updates released by Nvidia. This means that it is not necessary to have the software H.264 encoding library (libx264 or the NoMachine AVC Pack) installed on the host machine where the server is running.

6. Additional notes about NVENC

NVENC was introduced in Nvidia's Kepler architecture, which means cards which are based on architectures like Kepler, Maxwell, Pascal and later, support H.264 hardware encoding (a list of supported GPUs can be found on https://developer.nvidia.com/nvidia-video-codec-sdk).

NoMachine support for NVENC is available on Linux and Windows platforms only. It's enabled by default, but it can be enabled or disabled through key in node.cfg "EnableHardwareEncoding".

Some of the low-end graphics (ie. GeForce series) only support up to 2 concurrent encoding sessions per system. In practice this means that on Linux hosts with such graphics, for example, the user can run max. 2 NoMachine virtual Linux desktops with H.264 hardware support. However, high-end Nvidia GPUs are only limited by their resources (ie. Capacity of video memory, encoder usage).

Page 5 of 5

Powered by TCPDF (www.tcpdf.org)