When you create or edit a desktop pool of virtual machines, you can configure 3D graphics rendering for your desktops. You must configure 3D settings in ESXi hosts and in the golden image in vSphere Client.
Linux instant clones support NVIDIA GRID vGPU (shared GPU hardware acceleration) for the rendering of 3D graphics. This feature allows a physical GPU on an ESXi host to be shared among virtual machines. This feature offers flexible hardware-accelerated 3D profiles ranging from lightweight 3D task workers to high-end workstation graphics power users.
How 3D Rendering Works in Instant Clones
Horizon 8 does not directly control settings for 3D rendering of an instant-clone pool as it does with full-clone virtual machines. You need to configure 3D settings in the ESXi hosts, and then in your golden image using the vSphere Client. Instant-clone virtual machines will inherit those settings from the golden image. Horizon Console will display some of the settings you configured, but you cannot edit or interact with those settings.
End users can take advantage of 3D applications for design, modeling, and multimedia, which typically require GPU hardware to perform well. For users that do not require physical GPU, a software option provides graphics enhancements that can support less demanding applications.
In some cases, if an application such as a video game or 3D benchmark forces the desktop to display in full screen resolution, the desktop session can be disconnected. Possible workarounds include setting the application to run in Windows mode or matching the Horizon 8 session desktop resolution to the default resolution expected by the application.
To turn off 3D rendering in the vSphere Client, deselect Enable 3D Support for the golden image using the vSphere Client. See Configuring 3D Graphics in the vSphere Virtual Machine Administration guide.
GPU Settings in ESXi Hosts
The ESXi host assigns GPU hardware resources to virtual machines on a first-come, first-served basis as virtual machines are created. By default, the ESXi host assigns virtual machines to the physical GPU with the fewest virtual machines already assigned. This is the best performance mode. If you would rather have the ESXi host assign virtual machines to the same physical GPU until the maximum number of virtual machines is reached before placing virtual machines on the next physical GPU, you can use the GPU consolidation mode. You can configure this mode in vCenter Server for each ESXi host that has vGPU installed. For more information, see the VMware Knowledge Base (KB) article https://kb.vmware.com/s/article/55049.
If you are only using a single vGPU profile per vSphere cluster, set the GPU assignment policy for all GPU hosts within the cluster to the best performance mode in order to maximize performance. In this case, you can also have instant-clone pools and full-clone pools that use the same vGPU profile in the same vSphere cluster.
You can have a cluster with some GPU enabled hosts and some non-GPU enabled hosts.
- vMotion of vGPU Virtual Machines is supported starting with vSphere 6.7. See here for details on how to configure this and more information.
- vSphere Distributed Resource Scheduler (DRS) in vSphere 6.7 Update 1 and later supports initial placement of vGPU VMs without load balancing support.
- DRS in vSphere 6.7 or vSphere 7.0 versions earlier than vSphere 7.0 U3f will not automatically vMotion vGPU VMs when ESXi hosts are placed in maintenance mode. An administrator is required to manually initiate vMotion of vGPU VMs in order to allow ESXi hosts to enter maintenance mode.
- DRS in vSphere 7.0 U3f and later can be configured to allow automatic vMotion when hosts are placed in maintenance mode. See https://kb.vmware.com/s/article/88271 for instructions. DRS load balancing remains unsupported for vGPU VMs.
- Horizon 8 supports creating a vGPU instant-clone pool using a cluster with some vGPU enabled hosts and non-vGPU enabled hosts, and disregards the non-vGPU enabled hosts when creating the pool. You can not use vMotion to move an instant-clone from a GPU-enabled ESXi host to an ESXi host that does not have GPU hardware configured.
Enable NVIDIA GRID vGPU for Instant-Clone Pools
- Install NVIDIA GRID vGPU in the physical ESXi hosts.
- In vCenter Server hardware graphics configuration, select the Host Graphics tab, and in Edit Host Graphics Settings, select Shared Direct.
The ESXi host uses the NVIDIA GRID card for vGPU.
- Prepare a golden image with NVIDIA GRID vGPU configured, including selecting the vGPU profile you want to use.
- Take a snapshot of the golden image.
- In Horizon Console, when you create an instant-clone pool, select this golden image and snapshot.
Horizon 8 automatically displays NVIDIA GRID vGPU in the 3D Render field. Horizon 8 also displays the vGPU profile you chose in the golden image. Instant clones inherit the settings configured in the vSphere Client for the golden image.
The vGPU profile cannot be edited from Horizon Console during the instant-clone pool creation process, To edit the vGPU profile for a pool once the pool has been created, you can create a new image with the updated vGPU profile, take a snapshot, and then do a push-image operation. See Patching an Instant-Clone Linux Desktop Pool.