US 12,236,263 B2
Scheduling computation tasks for execution by multiple processing units using computation task profiling
Stephen John Clohset, San Francisco, CA (US); James Alexander McCombe, San Francisco, CA (US); and Luke Tilman Peterson, Oakland, CA (US)
Assigned to Imagination Technologies Limited, Kings Langley (GB)
Filed by Imagination Technologies Limited, Kings Langley (GB)
Filed on Aug. 12, 2016, as Appl. No. 15/236,148.
Application 15/236,148 is a continuation of application No. 13/368,616, filed on Feb. 8, 2012, granted, now 9,478,062, issued on Oct. 25, 2016.
Claims priority of provisional application 61/535,487, filed on Sep. 16, 2011.
Claims priority of provisional application 61/515,824, filed on Aug. 5, 2011.
Claims priority of provisional application 61/497,915, filed on Jun. 16, 2011.
Prior Publication US 2016/0350154 A1, Dec. 1, 2016
Int. Cl. G06F 9/48 (2006.01); G06F 9/50 (2006.01); G06F 40/169 (2020.01); G06T 15/00 (2011.01); G06T 15/06 (2011.01)
CPC G06F 9/4881 (2013.01) [G06F 9/5016 (2013.01); G06F 40/169 (2020.01); G06T 15/005 (2013.01); G06T 15/06 (2013.01); G06T 2200/28 (2013.01); G06T 2210/52 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A machine-implemented method of scheduling computation tasks, each computation task defining a graphic rendering process, comprising:
identifying, by a processor, a set of computation tasks to be executed on a plurality of processing units;
profiling, by the processor, the computation tasks of the set according to parameters comprising memory access requirements and computation requirements of the computation tasks;
forming, by the processor, instances of the computation tasks into at least one group by using said profiling of the computation tasks to identify computation tasks to be grouped together on the basis that they have memory access requirements and computation requirements that enable them to be executed in a group, wherein forming the instances of the computation tasks into at least one group is performed prior to scheduling the at least one group for execution, and wherein forming the instances of the computation tasks into at least one group is performed without allocating processing resources to service the at least one group;
scheduling, by the processor, subsequently to forming the at least one group of instances of the computation tasks, said at least one group to be executed on the plurality of processing units;
subsequent to scheduling the at least one group for execution, obtaining an allocation of processing resources to service the at least one group; and
executing the scheduled at least one group of instances of computation tasks using the allocated processing resources within the plurality of processing units.