This article describes how to configure XenServer 6.0 with XenDesktop for HDX 3D Pro Graphics so that a host workstation with multiple graphics cards can be shared by an equal number of concurrent high-end professional graphics users (one user per GPU), thereby reducing the cost per user.
Refer to the following Knowledge Center articles for increasing vCPUs per virtual machine:
CTX126524 - How to Set Cores-Per-Socket Parameter for a Virtual Machine
CTX125574 - XenServer 5.6 Multi-GPU Pass-through for XenDesktop HDX 3D Pro Graphics
Refer to the following Knowledge Center article for XenServer Host and GPUs support matrix for “HDX 3D Pro”:
CTX131385 - Citrix Tested Hardware for the HDX 3D Pro Feature in XenDesktop 5.5 or 5.6
For formal support of XenServer multi-GPU pass through solution, refer to the Hardware Compatibility List under GPU Pass-thru Support Matrix for XenServer: http://hcl.xensource.com/GPUPass-throughDeviceList.aspx
Citrix XenServer 6.0.2 (final RTM release) with Platinum Edition License.
Software on guest virtual machine, hosting XenDesktop HDX 3D Pro Graphics desktop
XenDesktop 5.5 or later Virtual Desktop Agent , “recommended 5.6 Feature Pack 1”
HDX 3D Pro Graphics online plug-in for Windows 12.0.33 (includes special GPU codec to minimize bandwidth requirements), or standard 12.0.3 online plug-in if only the CPU codec is required
Or
11.100 Citrix Receiver for Linux (includes CPU codec only)
Refer to the XenServer 6.0 documentation for more details on XenServer configuration. Similarly for XenDesktop 5.5 and HDX 3D Pro Graphics deployment, refer to the relevant documentation (such as HDX 3D Pro Graphics CTX124443 - XenDesktop 4 HDX 3D for Professional Graphics 1.1 - Administrator's Guide).
HDX 3D Pro Graphics, a feature of XenDesktop Enterprise and Platinum editions, enables the delivery of high-end 3D graphics applications, including OpenGL and DirectX based applications, such as CAD/CAM and medical imaging. Typically these applications are very computation-intensive and require hardware acceleration provided by a graphics processing unit (GPU). To support remoting of high-end 3D graphics based applications, Pro Graphics leverages a graphics card on the host workstation (usually located in the data center) for 3D rendering and optionally for deep compression of the data stream).
Because multi-user hypervisors prior to XenServer 5.6 did not support GPU access, HDX 3D Pro Graphics was previously recommended with physical machines only, whether physical desktop machines or blade or rack workstations.
With the Multi-GPU Pass-through feature of XenServer 5.6/6.0 it is now possible to map a physical GPU to a virtual machine; in fact, you can map multiple GPUs to an equal number of virtual machines, one to one. XenServer 6.0 with GPU mapping in the direct assign mode is the ideal solution for reducing hardware costs for high-end 3D graphics. Consider a server that has multiple GPUs or possibly (not yet tested) one that is connected to a multi-GPU appliance (such as NVIDIA Quadro Plex S4). In this case, each GPU can be mapped to one virtual machine, which can get access to the GPU and is powered by HDX 3D Pro Graphics. On a powerful multi-core server (such as a dual quad-core Nehalem processor server that would normally support 80 or more regular XenDesktop users running typical office applications), additional virtual machines could potentially run regular XenDesktop for normal use cases not requiring graphics hardware acceleration, subject to performance, thereby further reducing the cost per user.
Notes:
Citrix XenServer Platinum Licensing is required to enable GPU-Pass through in XenServer.
Snapshot does not work with GPU Cards. It is highly recommended to create/delete/revert snapshot of VM when GPU card is not assigned to VM or else you may have garbage entries in XenServer and VM will not start properly.
You should not take default console using XenCenter after assigning GPU Card and Installing NVIDIA Driver. Either take VNC console or take remote console.
Note: If cards are not listed properly then they are not attached properly to the server, reattach them and again list using lspci.
If Xenserver is not licensed with Platinum Edition License then get it Licensed.
Now check which all groups are created on XenServer. Note down GPU Groups UUID, for example, for ATI and nVIDIA attached cards run command, as displayed in the following screen shot:
You can see same assignment is XenCenter, as displayed in the following screen shot: