Posted 23 July 2017 - 04:37 PM
No, in passthough mode, all VMs share the same GPU and each gets all of it, but in a shared, multiplexed way. With XenServer, however, you can still only assign one VM to run in passthrough mode to a GPU - you can't share it with other VMs. To share a GPU in passthrough mode with multiple VMs, you'd need to do something like running a VM as an RDS terminal server and allow VMs to connect in turn to it.
I'd guess you could probably support 4-10 users with a GPU like that, depending on how intensive their apps are. With more sophisticated GPUs, vGPUs can be allocated which guaranty a certain amount of GPU memory, but the processing itself is time sliced, meaning that each user gets a short time when the session will be actively processed, then it moves on to the next, and goes around. The advantage there is that data need not be constantly shuffled back and forth between the GPU memory and external storage if not all jobs can be contained within the GPU's memory. That's why the amount of GPU memory available can be just as important as the speed and power of the GPU engine, itself.
Depending on if a user had a dedicated GPU and the amount of memory (2GB in your case) was adequate to hold all the data to be processed, that could be faster, but if more memory is needed that will start eating into the performance. Best is to see what sort of memory requirements your tasks use. You can test this out on a desktop with a basic GPU on your system by running such routines as GPUprofiler to see what your typical resource usage is for different applications and use that as a guide.
For any workstation load, I think 2 VGPUs is always desirable. For our Windows 10 instances now, we see for students typically around just 3 GB of RAM being used (we allocate 4 GB but configure it to be able to be ballooned between 3 and 4 GB). Your more intensive environment may require more than that. Again, monitoring performance is key to tuning the environment to work best with the resources you have or worst case, to identify and justify what is needed to bring it up to par.
Many vGPU scenarios require a very different licensing model which can add significantly to costs, so if funds are limited, you will probably be way cheaper off to use some sort of passthrough mechanism.
As to the best bang for the buck in GPU passthrough, I'd give the NVIDIA P5000 a good look. We're thinking of using it for RDS support on standalone Windows 2016 servers, but it could be used as a passthrough engine for a VM supporting RDS, as well.