A Graphical Processing Unit (GPU) is a specialized integrated chip designed to handle graphics processing for applications like 3-D gaming, scientific, analytics, engineering, consumer, and industrial applications like CAD. When a GPU is present, it handles the graphics processing, leaving computational processing to the traditional CPU. Architecturally, while a CPU has only few cores and handles a few hundred threads at a time, a GPU is composed of hundreds of cores that can handle thousands of threads simultaneously and render a flawless, rich graphics experience.
With recent advances in GPU technology, it is now possible to virtualize GPUs. With a virtual GPU (vGPU), graphics can be rendered on a virtual machine’s (VM’s) host server rather than on a physical end-point device. This technology makes it possible to use virtual desktop technology to support users accessing graphics-intensive workloads. Leading hypervisors, including VMware vSphere and Citrix XenServer, support virtual GPU technologies now. GPU sharing across users is also supported for application virtualization technologies like Citrix XenApp and Microsoft remote desktop services.
GPU virtualization is a very important aspect of successful VDI deployment today, as Brian Madden remarked:
Look at regular desktops and laptops. How many of them can you buy without a GPU? And if you price out a business desktop and then you have to shave off some costs, do you ever do that by removing the GPU? No! You dial back the CPU, cut down on memory, or maybe don’t do SSD. So by that logic a GPU should be 100% required for VDI, and if you don’t like the “added” cost of it, then you can offset it by putting 10% more users per server.
There are two modes of making GPU resources available to virtual desktops:
A) Pass-through mode: In this deployment mode, a physical GPU is presented entirely to a VM (either a virtual desktop or a virtual server). In this case, there is a 1-1 mapping between the VM and GPUs. In this case, the GPU is controlled directly by the VM operating system, not the hypervisor. This mode is ideal for applications and users who require dedicated GPU resources.
B) Virtual GPU (vGPU) mode: This model offers the benefit of sharing a physical GPU among many VMs. If a VM requires GPU resources and none of the other VMs needs GPU at the same time, it can access all the resources of the physical GPU. vGPU technology was first introduced by NVIDIA, and the NVIDIA Grid vGPU Manager running in a hypervisor manages the GPU allocation to VMs, guaranteeing each VM has a dedicated amount of video RAM. GPU cores are time-sliced, similar to how CPU cores are time-sliced.
Traditionally, performance monitoring solutions for application and desktop virtualization have tracked the utilization of CPU resources only. When GPU technology is in use, it is essential for a performance monitoring solution to be GPU-aware. That is, the utilization of GPU resources must be tracked in the same way as the utilization of CPU. This allows the monitoring solution to detect instances where GPU resources are a performance bottleneck, when GPU technology is not working as expected (e.g., hardware errors) and to enable future resource planning.
For total visibility into GPU performance, it is essential to monitor:
- GPU utilization at the hypervisor-level (when the GPU is hypervisor controlled)
- GPU utilization at the VM level (when the GPU is VM-controlled)
- Display frame rates at the VMs
- Utilization of GPU and BAR1 (prefetch) memory
- Hardware metrics, such as power and temperature of the GPU grids
- Which applications are using GPU resources
To accommodate different worker groups (Entry, Designer and Power users), the hypervisors may have multiple GRID cards installed and different sharing modes configured for each of these cards. The above key performance indicators (KPIs) should be tracked for each GPU card.
Application virtualization with Citrix XenApp can be implemented on physical machines with GPU technology configured as well. Performance monitoring of GPUs is also essential in these cases.
eG Enterprise supports GPU monitoring for NVIDIA K1 and K2 Grids installed on VMware vSphere and Citrix XenServer. All the above KPIs relating to GPU processing at the hypervisor level are tracked. vGPU and pass-through GPU configurations are monitored and the utilization of vGPU at the virtual desktop level is reported for Citrix XenApp, XenDesktop and VMware Horizon View.
With eG Enterprise’s GPU monitoring capabilities, if users of virtual applications or desktops complain of slowness when accessing graphic applications, administrators can instantly figure out what is causing the slowness – is it because adequate GPU resources are not available on the host, or is it because of excessive utilization of GPU memory and processing resources by a few VMs/virtual desktops on the host?
For a free 15-day eG Enterprise trial, register at https://www.eginnovations.com/freetrial.