IP Library Patent Application 11789039
Patent Application
App. No. 11/789,039

Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/789,039
Abstract

A multi-mode parallel 3-D graphics system having multiple graphics processing pipelines with multiple GPUs supporting a parallel graphics rendering process having time, frame and object division modes of operation, wherein each GPU comprises video memory, a geometry processing subsystem and a pixel processing subsystem, and wherein 3D scene profiling is performed in real-time, and the parallelization state/modes of the system are dynamically controlled to meet graphics application requirements. The multiple modes of parallel graphics rendering use real-time graphics application profiling, and dynamic control over time-division, frame-division, and object-division modes of parallel operation, within the same parallel graphics platform, which can be realized on PC-based computing system architectures.

Claims (50)

1 - 63 . (canceled)

64 . A method of parallel graphics rendering practiced on a multiple GPU-based PC-level graphics system capable of running a graphics-based application and supporting time, image or object division modes of parallel graphics rendering at any instant in time, said method comprising the steps:

(a) automatically profiling said graphics-based application during run-time and producing performance data; and

(b) using said performance data to dynamically select among said time, image and object division modes of parallel graphics rendering, in real-time, during the course of said graphics-based application, so as to adapt the optimal mode of parallel graphics rendering to the computational needs of said graphics-based application.

65 . The method of claim 64 , wherein step (a) further comprises detecting user-system interaction during said graphics-based application.

66 . The method of claim 65 , wherein detected user system interaction includes mouse device movement and keyboard depression.

67 . A multi-mode parallel graphics rendering system (MMPGRS) embodied within a host computing system having a CPU for executing graphics-based applications, host memory space (HMS) for storing one or more graphics-based applications and a graphics library for generating graphics commands and data during the execution of the graphics-based application, and a display device for displaying images containing graphics during the execution of said graphics-based application, said MMPGRS comprising:

(1) a multi-mode parallel graphics rendering subsystem supporting multiple modes of parallel operation selected from the group consisting of object division, image division, and time division, and wherein each mode of parallel operation includes at least three stages, namely, decomposition, distribution and recomposition, and said multi-mode parallel graphics rendering subsystem including

(i) a decomposition module for supporting the decomposition stage of parallel operation,

(ii) a distribution module for supporting the distribution stage of parallel operation,

(iii) a recomposition module for supporting the recomposition stage of parallel operation;

(iv) a plurality of graphic processing pipelines (GPPLs) supporting a graphics rendering process that employs said object division, image division and/or time division modes of parallel operation during a single session of said graphics-based application in order to execute graphic commands and process graphics data; and

wherein said decomposition, distribution and recomposition modules cooperate to carry out the decomposition, distribution and recomposition stages, respectively, of the different modes of parallel operation supported on said MMPGRS; and

(2) a profiling and control mechanism (PCM) for automatically profiling said graphics-based application by analyzing streams of graphics commands and data from said graphics-based application and generating performance data from said graphics-based application and said host computing system, and controlling the various modes of parallel operation of said MMPGRS using said performance data.

68 . The MMPGRS of claim 67 , wherein said decomposition module, said distribution module, and said recomposition module are each induced into a sub-state by set of parameters; and wherein the mode of parallel operation of said MMPGRS at any instant in time is determined by the combination of sub-states of said decomposition, distribution, and recomposition modules.

69 . The MMPGRS of claim 67 , wherein said host computing system includes machines selected from the group consisting of (i) a PC-level computing system supported by multiple GPUs, and (ii) a game console system supported by multiple GPUs.

70 . A multi-mode parallel graphics rendering system (MMPGRS) embodied within a host computing system, said MMPGRS comprising:

a plurality of GPUs for supporting a parallel graphics rendering process having time, image and object division modes of operation;

an application profiling and analysis module; and

wherein all state transitions in said MMPGRS are controlled by a profiling and control mechanism (PCM) which automatically profiles a graphics application executing on said host computing system and collects performance data from the MMPGRS and host computing system during the execution of said graphics application, and controls the mode of parallel operation of said MMPGRS at any instant in time based on said profiling and collected performance data.

71 . The MMPGRS of claim 70 , wherein said PCM comprises a profiling and control cycle, wherein said PCM automatically consults a behavioral profile database during the course of said graphics application, and determines which modes of parallel operation should be operate at any instant in time by continuous profiling of said graphics application and the real-time analysis of parameters listed in said behavioral profile database.

72 . The MMPGRS of claim 70 , wherein said PCM comprises a profiling and control cycle, wherein said PCM determines which modes of parallel operation should be operate at any instant by trial and error running a different mode of parallel operation at a different frame and collecting performance data from the host computing system and said MMPGRS.

73 . MMPGRS of claim 70 , wherein said PCM further comprises:

a user interaction detection (UID) subsystem that enables automatic and dynamic detection of the user's interaction with said host computing system, so that absent preventive conditions, said UID subsystem enables timely implementation of the time division mode only when no user-system interactivity is detected.

74 . MMPGRS of claim 73 , said preventive conditions comprises CPU bottlenecks and need for the same frame buffer (FB) during successive frames.

75 . The MMPGRS of claim 70 , wherein said host computing system includes machines selected from the group consisting of (i) a PC-level computing system supported by multiple GPUs, and (ii) a game console system supported by multiple GPUs.

76 . A multi-mode parallel graphics rendering system (MMPGRS) embodied within a host computing system having a CPU for executing graphics-based applications, host memory space (HMS) for storing one or more graphics-based applications and a graphics library for generating graphics commands and data during the execution of the graphics-based application, and a display device for displaying images containing graphics during the execution of said graphics-based application, said MMPGRS comprising:

(1) a multi-mode parallel graphics rendering subsystem supporting multiple modes of parallel operation selected from the group consisting of object division, image division, and time division, and wherein each mode of parallel operation includes at least three stages, namely, decomposition, distribution and recomposition, and said multi-mode parallel graphics rendering subsystem including

(i) a decomposition module for supporting the decomposition stage of parallel operation,

(ii) a distribution module for supporting the distribution stage of parallel operation,

(iii) a recomposition module for supporting the recomposition stage of parallel operation; and

(iv) a plurality of graphic processing pipelines (GPPLs) supporting a graphics rendering process that employs said object division, image division and/or time division modes of parallel operation during a single session of said graphics-based application in order to execute graphic commands and process graphics data; and

(2) a profiling and control mechanism (PCM) for automatically and dynamically profiling said graphics-based application executing on said host computing system, and controlling the various modes of parallel operation of said MMPGRS;

wherein said decomposition module, said distribution module and said recomposition module cooperate to carry out the decomposition, distribution and recomposition stages, respectively, of the different modes of parallel operation supported on said MMPGRS;

wherein said PCM enables real-time graphics application profiling and automatic configuration of said multiple GPPLs; and

wherein said PCM includes a user interaction detection (UID) subsystem that enables automatic and dynamic detection of the user's interaction with said host computing system, so that absent preventive conditions, said UID subsystem enables timely implementation of the time division mode only when no user-system interactivity is detected.

77 . The MMPGRS of claim 76 , wherein said preventive conditions comprises CPU bottlenecks and need for the same FB in successive frames.

78 . The MMPGRS of claim 76 , wherein each said GPPL comprises at least one GPU and video memory; and wherein only one of said GPPLs is designated as the primary GPPL and is responsible for driving said display unit with a final pixel image composited within a frame buffer (FB) maintained by said primary GPPL, and all other GPPLs function as secondary GPPLs, supporting the pixel image recompositing process.

79 . The MMPGRS of claim 76 , wherein said GPU comprises a geometry processing subsystem and a pixel processing subsystem.

80 . The MMPGRS of claim 76 , wherein said decomposition module divides up the stream of graphic commands and data according to the required mode of parallel operation determined by said PCM;

wherein said distribution module physically distributes the streams of graphics commands and data to said plurality of GPPLs;

wherein said GPPLs execute said graphics commands using said graphics data and generate partial pixel data sets associated with frames of pixel images to be composited by the primary GPPL in said MMPGRS; and

wherein said recomposition module merges together the partial pixel data sets from produced from said GPPLs, according to mode of parallel operation at any instant in time, and producing a final pixel data set within the frame buffer of the primary GPPL, which is sent into said display device for display.

81 . The MMPGRS of claim 80 , wherein said decomposition module can be set to different decomposing sub-states selected from the group consisting of object decomposition, image decomposition, alternate decomposition, and single GPPL for the object division, image division, time division and single GPPL (non parallel) modes of operation, respectively;

wherein said distribution module can be set to different distributing sub-states selected from the group consisting of divide and broadcast sub-state for object division and image division modes of operation, and single GPPL sub-state for the time division and single GPPL (i.e. non parallel system) mode of operation; and

wherein said recomposition module can be set to different sub-states selected from the group consisting of (i) test based sub-state which carries out re-composition based on predefined test performed on pixels of partial frame buffers (typically these are depth test, stencil test, or combination thereof), (ii) screen based sub-state combines together parts of the final frame buffers, and (iii) the None mode which makes no merges, just moves one of the pipeline frame buffers to the display device, as required in time division parallelism or in single GPU (non parallel); and

wherein said PCM controls the sub-states of said decomposition, distribution and recomposition modules, and interstate transitions thereof.

82 . The MMPGRS of claim 81 , wherein each of said decomposition, distribution and recomposition modules is induced into a sub-state by setting parameters, and the mode of parallel operation of said MMPGRS is established by the combination of such sub-states.

83 . The MMPGRS of claim 76 , wherein said display unit is a device selected from the group consisting of an flat-type display panel, a projection-type display panel, and other image display devices.

84 . The MMPGRS of claim 76 , wherein said host computing system includes machines selected from the group consisting of (i) a PC-level computing system supported by multiple GPUs, and (ii) a game console system supported by multiple GPUs.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2018
From: LUCIDLOGIX TECHNOLOGY LTD.
To: GOOGLE LLC
Reel/Frame 046361/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2008
From: BAKALASH, REUVEN; LEVIATHAN, YANIV
To: LUCID INFORMATION TECHNOLOGY, LTD.
Reel/Frame 020998/0769 →