Adaptive load balancing in a multi-processor graphics processing system
AssigneeNVIDIA Corporation
InventorFranck Diard
Life of this patent
Estimating the term…
Abstract
Systems and methods for balancing a load among multiple graphics processors that render different portions of a frame. A display area is partitioned into portions for each of two (or more) graphics processors. The graphics processors render their respective portions of a frame and return feedback data indicating completion of the rendering. Based on the feedback data, an imbalance can be detected between respective loads of two of the graphics processors. In the event that an imbalance exists, the display area is re-partitioned to increase a size of the portion assigned to the less heavily loaded processor and to decrease a size of the portion assigned to the more heavily loaded processor.
Claims19
1-27. (canceled)
A driver for a graphics processing subsystem having a plurality of graphics processors, the driver comprising:
- a command stream generator configured to generate a command stream for the plurality of graphics processors, the command stream including a set of rendering commands for a frame and a feedback command instructing each of at least a first one and a second one of the graphics processors to transmit feedback data indicating that the respective graphics processor has executed the set of rendering commands;
- an imbalance detecting module configured to receive the feedback data transmitted by the first and second graphics processors and to determine from the feedback data whether an imbalance exists between respective loads of the first and second graphics processors;
- and
- a partitioning module configured to partition a display area into a plurality of portions, each portion to be rendered by a different one of the graphics processors, the plurality of portions including a first portion to be rendered by the first graphics processor and a second portion to be rendered by the second graphics processor,
- wherein the partitioning module is further configured such that, in response to a determination by the imbalance detecting module that an imbalance exists, the partitioning module increases a size of the one of the first and second portions of the display area that is rendered by the more heavily loaded one of the first and second graphics processors and decreases a size of the other of the first and second portions of the display area.
A computer program product comprising:
- a computer readable medium encoded with program code for controlling operation of a computer that includes a plurality of graphics processors, the program code including:
- program code for partitioning a display area into at least a first portion to be rendered by a first one of the graphics processors and a second portion to be rendered by a second one of the graphics processors;
- program code for generating rendering commands for a frame to the plurality of graphics processors, wherein in response to the rendering commands, the first and second graphics processors perform rendering for the first and second portions of the display area, respectively;
- program code for generating a feedback command to at least the first and second graphics processors, wherein in response to the feedback command, the graphics processors provide feedback data for the frame, the feedback data indicating at least which of the first and second graphics processors was last to finish rendering the frame;
- program code for determining, based on the feedback data, whether an imbalance exists between respective loads of the first and second graphics processors;
- and
- program code for re-partitioning the display area in the event that an imbalance exists, wherein the re-partitioning increases a size of the one of the first and second portions of the display area that is rendered by the more heavily loaded one of the first and second graphics processors and decreases a size of the other of the first and second portions of the display area.
Dependencies are inferred from the claim text.