An apparatus for processing data, comprising: one or more processors including a graphics processing unit, GPU; and a hypervisor, coupled to the GPU, the hypervisor including: a command parser to parse a plurality of graphics memory addresses associated with a workload of a virtual machine (130, 140) of the apparatus, and generate a first shadow global graphics translation table, SGGTT, for translating the plurality of graphics memory addresses to respective system memory addresses of the apparatus based on a portion of a global memory address space accessible to the virtual machine; a GPU scheduler to check conflict between the first SGGTT and a second SGGTT containing graphics memory addresses used by a plurality of graphic memory working sets being-executed or to-be-executed by a plurality of render engines of the GPU, and schedule the workload of the virtual machine to a render engine of the plurality of render engines of the GPU when there is no conflict between the first SGGTT and the second SGGTT; characterized by a workload queue to hold a plurality of workloads from one or more virtual machines of the apparatus; and an SGGTT queue to hold a plurality of SGGTTs corresponding to the plurality of workloads, wherein the GPU scheduler is further to defer the workload of the virtual machine in response to a conflict between the first SGGTT and the second SGGTT, and to schedule another workload from the workload queue when a respective SGGTT of the another workload does not conflict with the second SGGTT. one or more processors including a graphics processing unit, GPU; and a hypervisor, coupled to the GPU, the hypervisor including: a command parser to parse a plurality of graphics memory addresses associated with a workload of a virtual machine (130, 140) of the apparatus, and generate a first shadow global graphics translation table, SGGTT, for translating the plurality of graphics memory addresses to respective system memory addresses of the apparatus based on a portion of a global memory address space accessible to the virtual machine; a GPU scheduler to check conflict between the first SGGTT and a second SGGTT containing graphics memory addresses used by a plurality of graphic memory working sets being-executed or to-be-executed by a plurality of render engines of the GPU, and schedule the workload of the virtual machine to a render engine of the plurality of render engines of the GPU when there is no conflict between the first SGGTT and the second SGGTT; characterized by a workload queue to hold a plurality of workloads from one or more virtual machines of the apparatus; and an SGGTT queue to hold a plurality of SGGTTs corresponding to the plurality of workloads, wherein the GPU scheduler is further to defer the workload of the virtual machine in response to a conflict between the first SGGTT and the second SGGTT, and to schedule another workload from the workload queue when a respective SGGTT of the another workload does not conflict with the second SGGTT. a command parser to parse a plurality of graphics memory addresses associated with a workload of a virtual machine (130, 140) of the apparatus, and generate a first shadow global graphics translation table, SGGTT, for translating the plurality of graphics memory addresses to respective system memory addresses of the apparatus based on a portion of a global memory address space accessible to the virtual machine; a GPU scheduler to check conflict between the first SGGTT and a second SGGTT containing graphics memory addresses used by a plurality of graphic memory working sets being-executed or to-be-executed by a plurality of render engines of the GPU, and schedule the workload of the virtual machine to a render engine of the plurality of render engines of the GPU when there is no conflict between the first SGGTT and the second SGGTT; characterized by a workload queue to hold a plurality of workloads from one or more virtual machines of the apparatus; and an SGGTT queue to hold a plurality of SGGTTs corresponding to the plurality of workloads, wherein the GPU scheduler is further to defer the workload of the virtual machine in response to a conflict between the first SGGTT and the second SGGTT, and to schedule another workload from the workload queue when a respective SGGTT of the another workload does not conflict with the second SGGTT.