1. One or more non-transitory computer storage media embodying computer-readable instructions for fairly sharing a graphics processing unit (GPU) among a plurality of virtual machines (VMs), the instructions when executed cause 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 graphics commands associated with each of the VMs for scheduling; transmit the allocated quantum for each of the VMs and the defined threshold quantum to a GPU driver; receive graphics commands from one or more of the VMs; accumulate the allocated quantum for each of the VMs and campare the accumulated quantum to the defined threshold quantum; and for each of the one or more of the VMs, send the received graphics commands to the GPU driver when the accumulated quantum is greater than or equal to the defined threshold quantum based on the comparison, 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.