Typically, cloud service providers use Xeons, which traditionally didn't have integrated processor graphics. Only recently Intel released Xeons with Integrated graphics (see http://ark.intel.com/products/88043/Intel-Xeon-Processor-E3-1285L-v4-6M-Cache-3_40-GHz ). Those processors should be equipped with XenGT: a graphics virtualization technology (see https://01.org/sites/default/files/documentation/sz14_sfts008_100_engp.pdf and https://01.org/igvt-g ), which enables them to run OpenCL 1.2 on virtualized graphics device . So now folks in OpenStack can create a GPU provisioning on top, but I am not aware of anyone doing this just yet. I will ask internally to see if I can get you more details.
From one of the links you provided, Intel GVT --d seems pretty straight forward, but I'm not entirely sure about GVT -s and -g. Do each VM see the entire GPU with GVT -s and -g, or are they compute units in the GPU fissioned into multiple subdevices kind of like CPU compute units are provisioned among VMs. I image either GVT -s or -g would time multiplex the entire GPU between multiple VMs, and the other would provision dedicated partitions of the GPU compute units among the VMs. However, the links seem like both GVT -s and -g are just different time multiplexing implementations. Is that correct that there isn't an implementation that dedicates partitions of the GPU?
I think you are correct in saying that we don't partition the GPU, we just virtualize it.
Here is the explanation from the architect:
With vt-d, gvt-g we will get hardware acceleration and will be able to run OpenCL on the GPU in a vm.
The way the GPU is shared in gvt-g is by time slicing between vms.
Vt-d the entire GPU is passed through to the vm.
What’s available now
Open Source Xen – gvt-g & vt-d
Citrix Xen server – vt-d
Citrix Xen Server – gvt-g
Vmware - vt-d