📜 ⬆️ ⬇️

"Not a single processor": Virtual GPU

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 processors

CPU 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 CC

The 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:


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 CC

VMware 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:


In general, the following components are required to configure vGPU with VMware vSphere 6:


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:


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:

Source: https://habr.com/ru/post/307486/


All Articles