virtualizing 3d professional graphics apps 3d professional graphics apps ... • xendesktop &...
TRANSCRIPT
March 21, 2013
Virtualizing 3D Professional Graphics Apps
Yvonne Dresser, Sr. Product Marketing Manager, Citrix Desktops and Apps Thomas Poppelgaard, Solution Architect, Commaxx
© 2013 Citrix
Industries that use 3D professional graphics
Aerospace Automotive Construction Energy
Engineering Services
Hi Tech - Electronics
Industrial Equipment
Medical Equipment
© 2013 Citrix
Enterprise challenges and opportunities
• Desire to leverage a global talent base and collaborate across the supply chain
• Corporate requirements to safeguard product design IP
• Need to extend access to design models on mobile devices
• Economic demands for cost control and faster time to market
• Business continuity and disaster-recovery plans
© 2013 Citrix
Classification of 3D professional graphics users
Designers & Engineers Power Users
Create & manipulate large
3D models View & edit 3D
data
Dedicated GPU Shared GPU Shared GPU
Knowledge & Task users
Business graphics apps
© 2013 Citrix
Solutions for GPU-accelerated graphics
XenDesktop HDX 3D Pro XenApp HDX 3D
Citrix Confiden5al -‐ Do Not Distribute
• GPU accelera5on of DirectX and OpenGL ~1.5 Mbps
• One user per GPU • H.264-‐based Deep Compression
• 3D SpaceMouse support
TOP PERFORMANCE SOLUTION
• GPU accelera5on of DirectX & OpenGL ~3 Mbps
• GPU sharing • Lower cost MicrosoP licensing
• Apps must be compa5ble with RDSH (Terminal Services)
MOST COST-‐EFFECTIVE SOLUTION
© 2013 Citrix
Internet LAN DMZ
StoreFront Services
NetScaler Gateway
Primary
Secondary
XenApp (Multi Users : 1 GPU) Technical Overview
Receiver HDX 3D Graphics
Pod
XenServer with GPU cards
Pod
XenServer with GPU cards
XenDesktop (1 User : 1 GPU)
Delivery Controller
© 2013 Citrix
• Heavy 3D graphics app usage • Exceptional graphics performance
and response optimizations
• Multiple users per server
• Very usable experience ~1.5 Mbps
• OpenGL and DirectX
8
with HDX 3D Pro
© 2013 Citrix
Addi5onal Features HDX 3D Pro
• Pixel-‐perfect lossless compression • Can combine with lossy compression during mo5on, for responsive remote access
• Dual monitor support • Receiver for Windows and Linux
• Connexion SpaceMouse
• Seamless app delivery
TOC
© 2013 Citrix
Compression Options
• CPU-based, deep compression codec • min. 1.5 Mbps bandwidth
• GPU-based implementation, • min. 2 Mbps
© 2013 Citrix
Desktop Virtualiza5on for High-‐end 3D Graphics Users XenDesktop with HDX 3D Pro
Client op5ons
Op5mized with special codecs:
Std. ICA codec:
© 2013 Citrix 12
• Light 3D apps usage • Many users per VM • Very usable experience at 3 Mbps • Graphics performance and response
optimizations
• DirectX and OpenGL with HDX 3D
© 2013 Citrix
Apps & Desktop Virtualiza5on for 3D graphics users XenApp with HDX 3D
Std. ICA codec only
© 2013 Citrix
GPU Options
• Any graphics card (NVIDIA, AMD/ATI) supported by the application vendor
• NVIDIA cards deliver highest frame rate with VGX™ API (“Monterey”) and support full-screen applications
• CPU-based deep compression is recommended, but if server CPU is limited then deep compression can be offloaded to the NVIDIA GPU
© 2013 Citrix
GPU Passthrough introduced in XenServer 6
Citrix Confiden5al -‐ Do Not Distribute
• XenDesktop HDX 3D Pro and XenApp HDX 3D
• Windows 7 (32/64-‐bit), Windows XP (32-‐bit), Windows Server 2008 R2 (64-‐bit)
• Mul5ple GPUs per host • Servers with 4 GPUs currently on HCL; tes5ng underway with 8 • One graphics-‐accelerated VM (single-‐user or mul5-‐user) per GPU
• Depending on CPU power, same host may also support non-‐graphics-‐accelerated users (i.e. regular office workers)
• Leverages NVIDIA high-‐performance Quadro and Grid GPUs • e.g. Quadro 1000M/2000/3000M/4000/5000/6000, Tesla M2070Q, GRID K1/K2
© 2013 Citrix
Hardware plaform
XenServer GPU Passthrough with XenDesktop
GPU
XenServer hypervisor
XenDesktop Windows VMs
GPU
GPU
GPU
3D Pro VM
3D Pro VM
3D Pro VM
non-‐3D VM
3D Pro VM
non-‐3D VM
non-‐3D VM
non-‐3D VM
non-‐3D VM
non-‐3D VM
non-‐3D VM
non-‐3D VM
© 2013 Citrix
Hardware plaform
XenServer GPU Passthrough with XenApp
GPU
XenServer hypervisor
XenApp Windows Server VMs
GPU
GPU
GPU
XenApp VM
XenApp VM
XenApp VM
Session 1
XenApp VM
Session 2 Session 3
Session 4
Session 5
Session N-‐1
Session N . . .
© 2013 Citrix
ws460c G6 blade (Q4000/5000/6000) ß XenServer cer5fied
Servers: DL980 G7, DL370 G6, SL390S G7 and others
R720 rack worksta5on (two dual-‐slot cards, e.g. M2070Q or GRID) ß tested R5500 rack worksta5on (3x Q4000 or 4x Q2000) ß XenServer cer5fied R5400 rack worksta5on (2 PCIe x16 GPUs, e.g. Q4000)
PowerEdge T620 (4x Q2000)
PowerEdge M610x with M2070Q plus C410x PCIe expansion chassis (4 GPU devices per server, 16 total GPUs per chassis) ß tested w/ XenApp
HS22 with GPU expansion blade ß tested with 2x M2070Q
System x iDataPlex dx360 M3/M4 (supports Q4000/Q5000/M2070Q) ß tested
System x iDataPlex x3650 M3/M4 (2 dual-‐slot cards, e.g. GRID) ß cer5fied
Others Cisco C240 M3; Fujitsu TX300; SGI Asterism ID112 ß XenServer cer5fied
Multi-GPU Hardware Platforms
© 2013 Citrix
GPU passthrough and GPU sharing on vSphere 5.1 XenDesktop/XenApp on vSphere 5.1
• vSphere 5.1 has introduced “virtual Direct Graphics Accelera5on” (vDGA) and “virtual Shared Graphics Accelera5on” (vSGA)
• Tes5ng for XenDesktop HDX 3D Pro compa5bility with vDGA has been successfully completed (hlp://support.citrix.com/ar5cle/CTX136291)
• Tes5ng with vSGA successful (single monitor) for “5er 3” use cases
• vSGA uses API Intercept method of sharing the GPU so performance may be an issue with large 3D models, and graphics API compa5bility is limited to DirectX 9c and OpenGL 2.1
© 2013 Citrix
3D graphics enhancements in Excalibur (first release from project Avalon) Looking ahead…
XenDesktop HDX 3D Pro
• Mul5-‐monitor support (i.e. more than two)
• Dynamic resizing without disconnect
• Auto-‐config / auto-‐adapt (no config tool / user interven5on required) XenApp HDX 3D
• Deep Compression
Citrix Receiver (enhancements targeted for Excalibur 5meframe)
• Deep Compression support on Mac, iPad, Android
• HDX SoC support for low-‐cost Linux thin clients
© 2013 Citrix
Hardware vGPU Looking ahead…
At the 2012 GPU Technology Conference, NVIDIA and Citrix announced our collabora5on on GPU Hardware Virtualiza5on • Enhancements to the VGX™ API and XenServer along with new GRID graphics cards will extend Citrix’s GPU sharing capability from Windows Server RDSH to Windows XP/7/8 VDI
• Higher performance with large 3D models compared to API Intercept method used by VMware vSphere/ESX and MicrosoP Hyper-‐V
• Ideal for second 5er users of 3D professional graphics • Beta trials with selected partners star5ng Q2 2013
© 2013 Citrix
Hardware plaform
GPU Virtualization
GPU
XenServer hypervisor
XenDesktop Windows VMs 3D Pro
VM 3D Pro VM
3D Pro VM
3D Pro VM
vGPU
3D Pro VM
. . .
vGPU
vGPU
vGPU
vGPU
. . .
1 2 3 4 N
. . .
© 2013 Citrix
• Optimize 3D application
• HDX Policies (i recommend) CTX131859 Best Practices and Recommendations for Citrix Receiver 3 and HDX Technology with XenDesktop 5.x CTX132799 XenDesktop and XenApp Best Practice
Tips and Tricks XenApp 6.x HDX 3D
© 2013 Citrix
• VDA Agent (VDA 4.x, 5.5, 5.6, 5.6FP1)
• Nvidia drivers (5.6FP1)
• Multi-monitor support (VDA 4.x, 5.5, 5.6,)
• 3D connexion - 3D Space Mouse (VDA 4.x, 5.5, 5.6, 5.6 FP1)
• Codec Compression (VDA 4, 5.5, 5.6)
• ClearType (VDA 4, 5.5, 5.6)
• Assign CPU cores to VM HDX 3D Pro
Tips and Tricks XenDesktop HDX 3D
© 2013 Citrix
Upgrade existing VDA to HDX 3D Pro • If you have standard installed VDA and you want to
enable HDX 3D Pro, you have to uninstall and install with HDX 3D Pro parameters.
Tips and Tricks XenDesktop HDX 3D
© 2013 Citrix
Installing or upgrading Nvidia drivers • If you install NVIDIA drivers before you install XenDesktop Virtual Desktop Agent
with HDX 3D Pro, NVIDIA VGX is enabled by default.
If you install NVIDIA drivers after you install XenDesktop Virtual Desktop Agent with HDX 3D Pro, NVIDIA VGX is disabled. Enable NVIDIA VGX by using the Montereryenable tool provided by NVIDIA.
To enable NVIDIA VGX, run the following command, then restart the virtual desktop agent: Montereyenable.exe –enable –noreset
To disable NVIDIA VGX, run the following command, then restart the virtual desktop agent: Montereyenable.exe –disable –noreset
Tips and Tricks XenDesktop HDX 3D
© 2013 Citrix
Tips and Tricks XenDesktop HDX 3D Pro - Multi-monitor support VDA 4-5.6** hlp://www.poppelgaard.com/how-‐to-‐get-‐receiver-‐with-‐desired-‐screen-‐resolu5on-‐or-‐mul5ple-‐screens-‐to-‐work-‐with-‐citrix-‐xendesktop-‐5-‐5-‐hdx3d-‐pro
© 2013 Citrix
Enable USB redirection to enable 3D spacemouse
Change Virtual Channel Priority CTX128190 Create a key named “WDSettings” under:
[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\GroupPolicy\Defaults\] in VDA registry.
Create a MULTI_SZ named “VirtualChannelPriority” with the following content from CTX128190:
increasing the priority of the Generic USB Redirec5on virtual channel to 0 default value CTXGUSB,1 = configure this to CTXGUSB,0
Tips and Tricks XenDesktop HDX 3D Pro
© 2013 Citrix
Vendor Card type CUDA GB/S Power Frame buffer MI Slot PCIe
Nvidia Quadro 2000 192 41.6 62 W 1GB DDR5 128 bit 1 PCI e 2.0
Nvidia Quadro 4000 256 89.6 142 W 2GB DDR5 256 bit 1 PCI e 2.0
Nvidia Quadro 5000 352 120 152 W 2.5GB DDR5 320 bit 2 PCI e 2.0
Nvidia Quadro 6000 448 144 204 W 6GB DDR5 384 bit 2 PCI e 2.0
Nvidia Tesla M2070Q 448 148 225 W 6GB DDR5 384 bit 2 PCI e 2.0
Nvidia Quadro K5000 1536 173 122 W 4GB DDR5 256 bit 2 PCI e 3.0
Sizing GPU solu5ons XenApp HDX 3D -‐ XenDesktop HDX 3D Pro
Vendor Card type CUDA GB/S Power Frame buffer MI Slot PCIe
Nvidia GRID K1 768 150 W 16GB DDR3 2 PCI e 3.0
Nvidia GRID K2 3072 225 W 8GB DDR5 2 PCI e 3.0
NVIDIA GRID (Worlds first GPU virtualiza5on card)
© 2013 Citrix
XenServer 6.0 Multi-GPU Passthrough for XenDesktop HDX 3D Pro Graphics
• http://support.citrix.com/article/CTX126524
XenServer Host The Server CPU should be IOMMU enabled for AMD processors or VT-‐d enabled for Intel processors. Virtual CPUs HDX 3D Pro Graphics u5lizes one virtual CPU completely for extrac5ng desktop surfaces, typically 12 to 30 5mes per second. If Aero is enabled on Windows this requires a second virtual CPU. In addi5on, at least two vCPU is required for the graphics applica5ons. Graphics applica5ons are oPen CPU intensive, even with hardware accelera5on of graphics rendering provided by the GPU. Hence it is important to configure the virtual machine running HDX 3D Pro Graphics with at least four virtual CPUs. Following are the instruc5ons for increasing the number of virtual CPUs on XenServer.
© 2013 Citrix
XenServer 6.0 Multi-GPU Passthrough for XenDesktop HDX 3D Pro Graphics
• http://support.citrix.com/article/CTX135811
Warning: 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. When you assign virtual CPUs to a virtual machine, by default one virtual CPU is equal to one core for a virtual machine. Some virtual machines have higher core limita5ons. By sesng the cores-‐per-‐socket parameter, it is possible to present a virtual machine with certain amount of cores. Note: This feature is only available in the Advanced, Enterprise, and Pla5num edi5ons and is not available in the free version of XenServer.
© 2013 Citrix
XenServer 6.0 Multi-GPU Passthrough for XenDesktop HDX 3D Pro Graphics • Complete the following procedure to set the cores-per-socket parameter for
Windows virtual machine:
1. Get the Universally Unique Identifier (UUID) of the Virtual Machine for which the parameter needs to be set: xe vm-list name-label=<Name of the VM>
2. Set the cores-per-socket parameter:
xe vm-param-set platform:cores-per-socket=’X’ uuid=<VM UUID from Step1> Here, X equals 2 for dual core and 4 for quad core. For example: To have a CPU with four cores: xe vm-param-set platform:cores-per-socket=4 uuid=<VM UUID>
3. Set the virtual CPUs startup parameter equal to the number of virtual CPUs (number of cores) to be assigned to the virtual machine and set the VCPUs-max parameter to the total number of cores. xe vm-param-set VCPUs-at-startup=<Number of VCPUs> uuid=<VM-UUID> xe vm-param-set VCPUs-max=<Maximum number of cores>. For a dual quad core CPUs, VCPUs-max=8 The number of virtual CPUs at startup is the number of cores to assign to the virtual machine.
© 2013 Citrix
• Microsoft Process Explorer http://bit.ly/fzWyfq
• Microsoft GPUView http://bit.ly/KzBTNh
• Nvidia CUDA SDK
• GPUz http://www.techpowerup.com/gpuz/
• HDX Monitor for XenApp http://hdx.citrix.com/hdx-monitor/tech-preview
HDX 3D and HDX 3D Pro Tools for troubleshoo5ng/monitoring
© 2013 Citrix
• HDX Monitor for XenDesktop http://hdx.citrix.com/hdx-monitor/tech-preview
• HDX 3D Pro monitor
• eG Innovations http://bit.ly/JdXqLZ
• Lakeside Software
• Login VSI http://www.loginvsi.com/en/download
HDX 3D and HDX 3D Pro Tools for troubleshoo5ng/monitoring
© 2013 Citrix
Additional Information
• Resources: www.citrix.com/xendesktop/HDX3D/ • Blog: www.blogs.citrix.com/product/xendesktop/ • Twitter: @xendesktop • http://www.poppelgaard.com/