1. One or more computer storage media embodying computer-executable instructions which, when executed, fairly share a plurality of graphics processing units (GPUs) among a plurality of virtual machines (VMs) by: assigning shares to a user having one or more VMs associated therewith; adjusting the assigned shares based on graphics command characteristics associated with the VMs; allocating quantum among the VMs based on the adjusted, assigned shares; generating a composite score for each of the plurality of GPUs, each composite score representing normalized processing capabilities of the GPU; and assigning each of the VMs to at least one of the plurality of GPUs based on the allocated quantum and the composite scores, wherein each of the plurality of GPUs performs graphics commands from the assigned VMs.