1. One or more computer storage media embody computer-executable components for fairly sharing a graphics processing unit (GPU) among a plurality of virtual machines (VMs), said components comprising: an initialization component that when executed causes at least one processor to: assign shares to a user having one or more VMs associated therewith, adjust the assigned shares based on graphics command characteristics associated with the VMs, allocate quantum among the VMs based on the adjusted, assigned shares, define a threshold quantum for scheduling, transmit the allocated quantum for each of the VMs and the defined threshold quantum to a GPU driver; and a scheduling component that when executed causes at least one processor to: receive graphics commands from one or more of the VMs, and for each of the one or more of the VMs, send the received graphics commands to the GPU driver based at least on the allocated quantum for the VM and the threshold quantum defined by the initialization component, wherein the GPU driver performs the sent graphics commands for each of the one or more VMs based on the allocated quantum for the VM.