gpu vdi

backgroud

preivously, reviewed:

this blog is a little bit futher of vmware and AMD GPU virtualization sln.

AMD virtualization

S7150x2

for remote graphic workstation, usually we separate host machine and local machines, where host machine is located in data center, and local machines are the end-user terminals at offices.

the host OS can be Windows 7/8, Linux, and hypervisor can be vmware ESXi 6.0; guest os can be windows7/8, supported API includes: DX11.1, OpenGL

since S7150 has no local IO, os there is no display interface, just like a Nvidia Tesla GPU.

SR-IOV

  • sr-iov arch

image

  • Physical Function (PF)

it’s PCI-Express function of a network adapter that supports single root I/O virtualization(SR-IOV) interface. PF is exposed as a virtual network adapter(vLan) in the host OS, and the GPU driver in install in PF.

  • Virtual Function (VF)

it’s a lightweight PCIe function on a network adapter that supports SR-IOV. VF is associated with the PF on the network adapter, and represents a virtualized instance of the network adapter. each VF has its own PCI configuration space, and shares one or more physical resources(e.g. GPU) on the network adapter.

  • GPU SR-IOV

sr-iov basically split one PF(a PCIe resource) into multi VF(virtual PCIe resource). and each vf has its own Bus/Slot/Function id, which can used to access physical device/resources(e.g. GPU); Nvidia Grid vGPU is a different mechanism, where virtualization is implemented only in host machine side to assign device MAC address.

GPU resource managment

  • display

GPU PF mangae the size of frameBuffer to each vf, and display virtualization.

  • security check

PF also do an address audit check and security check

  • VF schedule

GPU vf scheduler is similar as CPU process time-split. in a certain time period, the gpu is occupied by a certain vf.

Multiuser GPU(MxGPU)

AMD MxGPU is the first hardware-based virtualized GPU solution, based on SR-IOV, and allows up to 16 vm per GPU to work remotely.

image

now we see two GPU virtualization solutions:

1
2
* Nvidia Tesla vGPU
* AMD SR-VIO MxGPU

vGPU is more software-based virtualization, but the performance is a little better; while MxGPU is hardware based.

vmware products

  • the license-free products, e.g. vSphere Hypervisor, VMware Remote Console

  • the licensed and 60days-free products, e.g. vSAN, Horizon 7, vSphere

vSphere

vSphere is the virtualization(hypervisor) layer of vmware products. there are two components: ESXi and vCenter Server. exsi is the core hypervisor, and vcenter is the service to mange multi vm in a network and host resources pool.

image

install and setup

a few steps including:

  • install ESXi on at least one host, either interactively or install through vSphere auto deploy, which include vServer. basically, esxi is free, and can be install on system as the hypervisor layer for any future vms.

  • setup esxi, e.g. esxi boot, network settings, direct console, syslog server for remote logging

  • deploy or install vCenter and services controller

Horizon

image

  • client devices

  • Horizon client

the client software for accesing remote desktops and apps, which will run on client devices. after logging in, users select from a list of remote desktops and apps that they are authorized to use. and admin can configure Horizon client to allow end users to select a display protocol.

  • Horizon agent

it’s installed on all vms, physical machines, storage server that used as sources for remote desktops and apps. if the remote desktop source is a vm, then first need install Horizon Agent service on that vm, and use the vm as a tepmplate, when create a pool from this vm, the agent is automatically installed on every remote desktop.

  • Horizon admin

used to configure Horizon connection server, deploy and manage remote desktops and apps, control user authentication e.t.c.

  • Horizon connection server

serve as a broker for client connections.

a rich user experience

  • usb devices with remote desktops and apps

basically can configure the ability to use USB devices from virtual desktop

  • real-time video for webcams

basically can use local client(end-user terminal)’s webcam or microphone in a remote desktop or published app.

  • 3d graphics

with Blast or PCoIP display protocol enable remote desktop users to run 3D apps, e.g. google earch, CAD.

vSphere 6.0+ supports NVIDIA vGPU, basically share GPU among vms, as well as support amd GPU by vDAG, basically share gpu by making GPU appear as multiple PCI passthrough devies.

desktop or app pool

first create one vm as a base image, then Horizon7 can generate a pool of remote desktops from the base image. similar for apps.

the benefit of desktop pool, if using vSphere vm as the base, is to automate the process of making as many identical virtual desktops as need, and the pool has manage tools to set or deploy apps to all virtual desktops in the same pool. for user assignment, either dedicated-assignment pool, which means each user is assigned a particular remote desktop adn returns to the same v-desktop at each login. it’s a one-to-one desktop-to-user relationship; or floating-assignment pool, basically users can shift to any v-desktop in the pool.

security features

  • Horizon Client and Horizon Administrator communicate with a Horizon Connection Server host over secure HTTPS connections.

  • integrate two-factor authentication for user login

  • restrict remote desktop access by matching tags in v-desktop pool, but further restriction need design network topology to force certain clients to connect through.

refere

vmware product lists

amd S7150 review

GPU SR-IOV

windows driver tech: PF & VF

vSphere install and setup doc

horizon7 install and setup doc