GPU profile assignment


is there a method to force a profile to a specific GPU? From what I can tell it is randomly selected.

I am splitting a K160q (across 3GPU’s) and a K120q profile off the final GPU on an Nvidia Grid K1 card. It took some dancing but I was able to get it to work properly. It would of been nice if I could of just told my VM’s use GPU 0 - 2 for K160q and the other pool use GPU 3 for the K120q

Which hypervisor are you using?

Hi Binary1010

If you are using XenServer then you are in luck, as this has the best GPU management capabilities of any Hypervisor at the moment, and as such, controlling which GPU hosts a specific profile is very easy. From the GPU tab, select which GPU you would like to configure by either “checking” or “unchecking” the box to the left of the displayed GPU bar, from there click the “Edit Selected GPUs” button from the right side, from here you can configure which GPUs host which profiles. It’s very easy and a real lesson to the other vendors on how it should be done, as it’s very visual and obvious, which is great!

If you are using ESXi, then there isn’t really any GPU management at all (to my knowledge). You need to let the Hypervisor allocate where the VM will sit based on its assigned GPU profile. After that, without querying SMI, there is no obvious way to see which GPU the VM is using. You could use dedicated Resource Pools and only use certain GPU profiles in each, but it’s not great for something that is now a core part of the overall solution.

If you have a different way of doing it, then I’d be interested to see how you’ve done it.

Incase you’ve not seen it before, I’ve attached 2 images of how easy it is with XenServer.


GPU Profile Allocation.jpg
GPU Performance vs Density.jpg


I am using ESXi 6.2 U2.

To deploy it in this method I played the juggling game with SMI. Nothing fancy, just a bit of frustrating patience. Once its set (unless you start wiping entire pools from a GPU) then it will never be a problem to recompose pools from a GPU resourcing perspective.

I would of thought that by now Nvidia would have come up with something to help with this, or even a GUI plugin to allow easy oversight and management of the grid cards.

Hi Binary1010,

this is a hypervisor feature as WLB and management like functionality for VMs is dictated by CPU/GPU/other criteria and as such it is one for VMware to implement. We provide the APIs for vendors to do this and Citrix have added breadth/depth first algorithms to their stack. It is functionality that you need to ask VMware product management to consider implementing.

We provide apis for monitoring to for the vendors to integrate against nvidia-smi etc and the NVAPI. Citrix have done as you suggest and implemented GUI XenCenter features and this is available for VMware to do for vCenter.

In a VDI environment the management and provisioning is the virtualisation vendors remit as the GPU is abstracted more than in a physical environment.

Best wishes,