US 11,748,130 B2
Virtualization and multi-tenancy support in graphics processors
Rajesh Sankaran, Portland, OR (US); Bret Toll, Hillsboro, OR (US); William Rash, Saratoga, CA (US); Subramaniam Maiyuran, Gold River, CA (US); Gang Chen, Milpitas, CA (US); and Varghese George, Folsom, CA (US)
Assigned to INTEL CORPORATION, Santa Clara, CA (US)
Filed by INTEL CORPORATION, Santa Clara, CA (US)
Filed on Jun. 28, 2019, as Appl. No. 16/456,300.
Prior Publication US 2020/0409733 A1, Dec. 31, 2020
Int. Cl. G06F 9/455 (2018.01); G06F 12/1009 (2016.01); G06T 1/20 (2006.01)
CPC G06F 9/45558 (2013.01) [G06F 12/1009 (2013.01); G06T 1/20 (2013.01); G06F 2009/4557 (2013.01); G06F 2009/45583 (2013.01); G06F 2009/45591 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A system comprising:
a host platform including a processing device and virtual machine monitor (VMM), the host platform hosting one or more virtual machines (VMs);
a plurality of graphics processing apparatuses coupled to the host platform using a host fabric, the plurality of graphics processing apparatuses coupled together using a scale-up fabric;
a graphics processing apparatus from the plurality of graphics processing apparatuses comprising:
one or more graphics processing engines;
a memory;
a memory management unit (MMU) including a GPU second level page table and GPU dirty bit tracker;
a provisioning agent to:
receive a request from the VMM to provision a subcluster of graphics processing apparatuses, the subcluster including a plurality of graphics processing engines that comprise a first portion of graphics processing engines within the one or more graphics processing engines on the graphics processing apparatus and a second portion of graphics processing engines on a second graphics processing apparatus;
provision the scale-up fabric to route data within the subcluster of graphics processing apparatuses; and
provision a plurality of resources including the first portion of graphics processing engines on the graphics processing apparatus for the subcluster of graphics processing apparatuses based on the request from the VMM; and
a migration agent, the migration agent to:
responsive to a request to migrate GPU state from the subcluster of graphics processing apparatuses to a second subcluster of graphics processing apparatuses coupled to a second host platform,
identify a portion of the memory that was written to while another portion of memory was transferred to the second subcluster;
determine the portion of the memory is below a threshold; and
send a message to the VMM indicating the portion of the memory and further indicating that the subcluster is ready to be migrated.