The volume of data accumulated in the world is growing, so there are new ways of processing them. One of the ways to increase the speed of computations is to use a central (CPU) and a graphics processor (GPU) together. GPU-accelerated calculations were
invented back in 2007 by Nvidia, but now the technology has reached a new level and is used in data centers of major research laboratories and enterprises.
We have already touched on the topic of virtualization in our blog when we
talked about how and by whom the virtual infrastructure is used. Today we would like to tell you how virtual graphics processors work and what GPU technologies exist on the market.

Computing on a GPU is used not only in computer games and when working with video content. For example, NASA, according
to a meteorological scientist, uses GPUs in GEOS-5 models to increase the efficiency of numerical modeling of atmospheric phenomena. This makes it possible to increase the availability of the system for more people, ensuring a resolution of 100–200 km / pixel.
')
GPU-accelerated computations are also used in business analytics. So, according
to senior researcher HP Labs Ren Wu (Ren Wu), the GPU allowed to increase the performance of the analytical systems used by 5-20 times.
Comparison of the central and graphic processorsCPU and GPU architectures were originally “sharpened” for solving various tasks. The central processor solves general-purpose tasks: executing a set of sequential instructions, controlling peripheral devices, and so on, so it
usually contains from 2 to 18 cores that have a complex structure.
The GPU was originally designed for working with graphics, because it consists of a larger number of energy-efficient cores capable of processing up to several thousand threads simultaneously. In this case, only a part of the most demanding computations are performed on the GPU, and the rest is given to the CPU.
/ photo Mmanss CCThe use of such calculations is important in the scientific field, therefore, to perform voluminous scientific calculations, supercomputers are created that are “stuffed” with GPUs. However, despite all the advantages of this kind of calculation, the purchase of physical equipment translates into serious cash expenditures. Moreover, “iron” tends to become obsolete, because it has to be updated regularly.
VGPU technology
These problems are designed to solve the technology of virtual graphics processors (vGPU), presented by Nvidia, which allows users to run graphics-intensive applications remotely. Here it is worth noting that before the advent of vGPU,
other methods of accelerating graphics processing were used:
- Virtual Shared Graphics Acceleration (vSGA) - involves the sharing of physical GPUs by different virtual desktops.
- Virtual Dedicated Graphics Acceleration (vDGA) is the allocation of a physical GPU in a virtual machine due to the pass-through (pass-through) of the device, but in this case the VM was tied to the host, which resulted in a problem related to limiting the number of GPUs installed on the host.
The technology of the same vGPU absorbed the best of these two approaches. As in the case of vSGA, in a vGPU environment, GPU and RAM are supposed to be shared among several virtual desktops, but each VM uses Nvidia drivers to send commands directly to the GPU, as is the case with vDGA.
Such a solution, as shown by testing conducted by employees of VMware, was quite wealthy. In
their work, they described the results of application tests using VMware products: Workstation 6.5 and Fusion 2.0. They managed to establish that the performance of Half-Life 2: Episode 2 and Civilization 4 when using virtual GPUs was close to the actual (as if the games were launched on a physical machine).
But vGPU technology is used in various fields: architects and engineers use it in computer-aided design systems (for example, in Autodesk BIM), and designers work with digital photo and video content (for example, in Adobe Photoshop). It is also used by healthcare professionals who use the transmission and archiving systems for medical images and patient records (PACS), such as the GE Centricity EMR.
It is worth noting that until recently it was impossible to organize the access of many users to a single GPU. If 32 people wanted to access the drawings in AutoCAD from their VMs, then they had to purchase 8 expensive video cards with 4 GPUs. This problem was solved by the Nvidia GRID technology. Its essence lies in sharing vGPU with several virtual desktops, which are provided with direct access using Nvidia drivers.
In fact, the latest version of Nvidia GRID 2.0
allows you to move all the work into virtual space. The updated technology supports up to 128 users on the server and significantly increases application performance. GRID 2.0 also allows you to run virtual desktops on blade servers and supports not only Windows, but also Linux.
Setting up vGPU mode for Nvidia cards in VMware vSphere 6
/ photo ChrisDag CCVMware has introduced the virtual GPU feature in updating its vSphere 6.0 virtualization platform. Nvidia's vGPU technology, when used with VMware products, implies VMware Horizon 6 as a VMware vSphere 6 platform, and as a virtual PC management tool.
vGPU is
supported for Nvidia GRID K1 and K2 graphics adapters, for each of which 4 video card resource usage profiles are defined. Here is a table of their options:

This table shows three types of users:
- A designer is a person who uses “greedy” for graphic resources of an application (this also includes users of CAD applications).
- Advanced user - a person who uses such applications from time to time.
- Information worker - a user who uses video card resources poorly.
In general, the following components are required to
configure vGPU with VMware vSphere 6:
- VMware vCenter 6.0,
- VMware ESXi 6.0,
- VMware Horizon View 6.1,
- Nvidia GRID vGPU Manager.
First we need to configure the BIOS servers, and for each vendor will have its own parameters. Here, for example, is the configuration for Cisco:
- CPU Performance: install Enterprise or High Throughput.
- Energy Performance: select Performance.
- PCI Configuration: set MMCFG BASE to 2 GB and disable Memory Mapped I / O above 4GB.
- VGA Priority: set to Onboard VGA Primary.
Next, you need to deploy on the components of the component Nvidia vGPU Manager, which creates a connection between the graphics card graphics processor and the virtual machine.
It is installed as a normal VIB package.
After Nvidia vGPU Manager is configured on the ESXi host servers, we need to prepare the virtual machines. This is done through the vSphere Web Client, where the hardware characteristics of the VM are selected depending on the type of workload.
Then, in the VM settings, you need to add a Shared PCI Device, and also select the Nvidia GRID vGPU type and profile in accordance with the table above. After that, you can install the guest OS (Windows 7 and later).
Now it remains to install the Nvidia GRID driver and configure the virtual PC pool in VMware Horizon View: we simply specify the PCoIP protocol and the type of the Nvidia GRID VGPU 3D render. That's all. Virtual machines are ready to work with vGPU.
PS Interesting materials from our blog on the topic of virtualization: