How to build VDI for complex graphics

    The centralization of desktops and client PCs in the data center today is increasingly becoming the subject of discussion in the IT community, this approach is especially interesting for large organizations. One of the hottest technologies in this regard is VDI. VDI allows you to centralize the servicing of client environments, simplify the deployment of applications, their configuration and configuration, as well as updating and monitoring compliance with security requirements.



    VDI unbinds the user's desktop from the hardware. You can deploy both a permanent virtual desktop and (the most common option) a flexible virtual machine. Virtual machines include an individual set of applications and settings, which is deployed in the base OS during user authorization. After exiting the system, the OS returns to a “clean” state, removing any changes and malware.

    It is very convenient for the system administrator - manageability, security, reliability at the height, applications can be updated in a single center, and not on every PC. Office packages, database interfaces, Internet browsers and other undemanding graphics applications can run on any server (well-known 1C terminal clients).

    But what if you want to virtualize a more serious graphics station?

    Here you can not do without virtualization of the graphics subsystem.

    There are three work options:
    • GPU pass-through: 1: 1 dedicated GPU on VM
    • Shared GPU: Software Virtualization GPU
    • Virtual GPU: Hardware Vitrulization (HW&SW)


    Let's take a closer look Dedicated GPU The most productive operating mode, supported in Citrix XenDesktop 7 VDI delivery and VMware Horizon View (5.3 or higher) with vDGA. Fully work NVIDIA CUDA, DirectX 9,10,11, OpenGL 4.4. All other components (processors, memory, drives, network adapters) are virtualized and shared between hypervisor instances, however one GPU remains one GPU. Each virtual machine gets its own GPU with virtually no penalty in performance. The obvious limitation is that the number of such virtual machines is limited by the number of available graphics cards in the system. Shared GPU










    Powered by Microsoft RemoteFX, VMware vSGA. This option relies on the capabilities of the VDI software, the virtual machine seems to work with a dedicated adapter, and the server GPU also believes that it works with a single host, although this is actually an abstraction level. The hypervisor intercepts API calls and translates all the commands, rendering requests, etc., before being sent to the graphics driver, and the host machine works with the virtual card driver.

    Shared GPU is a reasonable solution for many cases. If the applications are not too complex, then a significant number of users can work at the same time. On the other hand, a lot of resources are spent on translating the API, and it is impossible to guarantee compatibility with applications. Especially with those applications that use newer versions of the API than existed at the time of the development of the VDI product. Virtual GPU The most advanced option for sharing GPUs between users, currently supported only in Citrix products.






    How it works? In a VDI environment with vGPU, each virtual machine runs through a hypervisor with a dedicated vGPU driver, which is available in each virtual machine. Each vGPU driver sends commands and controls one physical GPU using a dedicated channel.
    Processed frames are returned by the driver to the virtual machine for sending to the user.

    This mode of operation became possible in the latest generation of NVIDIA GPUs - Kepler. Kepler has a Memory Management Unit (MMU) that translates virtual host addresses to physical system addresses. Each process works in its own virtual address space, and the MMU shares their physical addresses so that there is no intersection and struggle for resources.

    Embodied in the cards Lineup




    GRID K1GRID K2
    Number of GPUs4 x entry Kepler GPUs2 x high-end Kepler GPUs
    Total NVIDIA CUDA cores7683072
    Total memory size16 GB DDR38 GB GDDR5

    Varieties for VDI

    But simple division by characteristics is not enough, division into virtual profiles vGPU is available for GRID. User Type Vision




    MapGPU NumberVirtual GPUUser typeMemory size (MB)Number of virtual screensMaximum resolutionMax number of vGPUs per GPU / card
    GRID K22GRID K260QDesigner / Designer204842560x16002/4
    GRID K22GRID K240QMid-level designer / designer102422560x16004/8
    GRID K22GRID K200Office employee25621920x12008/16
    GRID K14GRID K140QDesigner / Entry Level Designer102422560x16004/16
    GRID K14GRID K100Office employee25621920x12008/32

    Profiles and Applications

    Profiles with the Q index are certified for a number of professional applications (for example, Autodesk Inventor 2014 and PTC Creo) in the same way as Quadro cards.


    Complete virtual happiness!

    NVIDIA would not be true to itself if it had not thought about additional varieties. Game services on demand (Gaming-as-a-Service, GaaS) are gaining some popularity, where you can also get a good bonus from virtualization and the ability to split the GPU between users.

    Product nameGRID K340GRID K520
    Target marketHigh-density gamingHigh performance gaming
    Concurrent # Users14-242–16
    Driver supportGRID GamingGRID Gaming
    Total GPUs4 GK107 GPUs2 GK104 GPUs
    Total NVIDIA CUDA Cores1536 (384 / GPU)3072 (1536 / GPU)
    GPU Core Clocks950 MHz800 MHz
    Memory size4 GB GDDR5 (1 GB / GPU)8 GB GDDR5 (4 GB / GPU)
    Max power225 W225 W

    Varieties for gaming in the clouds

    Impact of virtualization on performance

    Server configuration:
    Intel Xeon CPU E5-2670 2.6GHz, Dual Socket (16 Physical CPU, 32 vCPU with HT)
    Memory 384GB
    XenServer 6.2 Tech Preview Build 74074c

    Virtual Machine Configuration:
    VM Vcpu: 4 Virtual CPU
    Memory: 11GB
    XenDesktop 7.1 RTM HDX 3D Pro
    AutoCAD 2014
    Benchmark CADALYST C2012
    NVIDIA Driver: vGPU Manager: 331.24
    Guest driver: 331.82

    The measurement procedure is simple - in virtual machines the CADALYST test was run and the performance was compared when adding new virtual machines.









    As can be seen from the results, for the older K2 model and the certified profile, the drop is about 10% when 8 virtual machines are launched, for the K1 model the drop is stronger, but there are twice as many virtual machines.

    The absolute result of cards with the maximum number of virtual machines:



    Where to put the cards?

    We have introduced the Hyperion RS225 G4 model , designed to install 4 Intel Xeon Phi or GPGPU cards. Two Xeon E5-2600 v2 processors, up to 1 terabyte of RAM, 4 seats for hard drives, InfiniBand FDR or 40G Ethernet for connecting to a high-speed network and a pair of standard gigabit network connectors. Installing a card in a server: Card in a server:

















    There are also several standard solutions for various occasions.

    Also popular now: