Implementing a graphics card in your server allows better performance for GPU-intensive applications in VDI and SBC environments. With Citrix and NVIDIA’s vGPU innovations, this is becoming more popular. However, if you don’t plan your GPU deployment correctly, user acceptance of these new innovations will be difficult. This article will contain some things to keep in mind while planning your GPU deployment in virtualized environment. While I created this article with XenDesktop in mind, it does apply to any other VDI or SBC technology like Vmware View, RemoteFX and XenApp.
CPU or GPU usage
Many applications will benefit of having access to a physical GPU, leveraging API’s like OpenGL, DirectX or OpenCL. However, not every application will leverage the GPU as much as it would leverage the CPU. Make sure you investigate your applications, they way they work and wether these applications are more CPU or GPU-heavy.
If the application is more GPU heavy, check how much it will utilize the GPU. This will help you decide the exact GPU profile to select and the hardware to buy. Some applications may suffice with a K120Q vGPU profile, while other applications will need a complete GPU passthrough configuration. There are some fine tools out there to do performance planning like Login VSI (to do capacity planning and sizing) and Lakeside Systrack (to asses your existing environment).
XenMotion and maintenance windows
If you assign a GPU (or vGPU) to your VM, be aware that XenMotion will not be possible anymore. Even a vGPU can be considered to be hardware passthrough (there’s a direct connection between the VM and the GPU), meaning that you lose the XenMotion functionality.
While this does not have a direct impact on functionality of the VM’s itself, it does have a big impact on your maintenance windows and SLA’s. If you can migrate a VM to another XenServer to do maintenance, users will always be able to access their VM. Plan your maintenance windows to be outside business hours and make sure your end-users know about these maintenance windows in advance, since they will not be able to access their virtual machines.
Cooling
Server-grade GPU’s like NVIDIA GRID K2 and AMD FirePro S10000 have passive cooling, meaning that there should be enough fans in your server to cool down the GPU’s. CPU’s maximum temperatures are somewhere between 65 and 75 degrees celsius, while a NVIDIA GRID K2 will stop working if it reaches 97 degrees celsius. The GPU’s are used to perform under higher temperatures but do result in higher temperatures inside your server. This means cooling both inside and outside your server will need to be optimal.
Power usage
Installing a graphics card in your server means an increase in power usage. Moving the power usage from the client device to the data center may be an advantage. Moving your GPU workload to the data center means that you will have less power usage at the endpoint device, if you for example replace your high-end graphics workstation by economic thin clients. However, if you run your servers in a shared datacenter, it may impact your TCO. If you even have a maximum power consumption plan at your shared data center, it could lead to an outage if you may not use any more power.
Endpoint device
If you’re using HDX 3D Pro to deliver graphical applications to your endpoint devices, be aware that your endpoint device CPU or GPU will be utilized to decompress the data. (given that you’re making use of the deep compression functionality of HDX 3D Pro) With HDX 3D Pro, data is compressed (deep compression) using h.264 codec. This allows the best combination in regards to framerate, image quality and bandwidth. Decompression takes place at the endpoint, but whether it is decompressed by CPU or GPU depends on 2 things:
- Which version of the Citrix Receiver is installed?
Version 12.0.3 of the Citrix Receiver will not use the GPU, but only CPU. Version 12.0.33 (and later) can leverage the GPU to do the decompression. - Is a GPU present in your endpoint device?
Goes without saying, but if there’s no GPU present, the CPU will be used to decompress the data.
So if your endpoint device has a GPU installed, and you’re not using Citrix Receiver 12.0.33 yet, make sure you plan to upgrade the Receiver installation.
I hope this article was useful for you. Be sure to check back, I will adding new parts to this (v)GPU series in the coming weeks. If you have any questions, leave a comment or feel free to drop me an email.