Multi-mode parallel graphics rendering system (MMPGRS) employing multiple graphics processing pipelines (GPPLS) and real-time performance data collection and analysis during the automatic control of the mode of parallel operation of said GPPLS
A multi-mode parallel graphics rendering system (MMPGRS) employing multiple graphics processing pipelines (GPPLs) and real-time performance data collection and analysis during the automatic control of the mode of parallel operation of the GPPLs. The MMPGRS supports multiple modes of parallel operation selected from the group consisting of object division, image division, and time division. The GPPLs support a parallel graphics rendering process that employs one or more of the object division, image division and/or time division modes of parallel operation in order to execute graphic commands and process graphics data, and render pixel-composited images containing graphics for display on a display device during the run-time of the graphics-based application. An automatic mode control module automatically controls the mode of parallel operation of the MMPGRS during the run-time of the graphics-based application by (i) automatically collecting performance data from at least one of the MMPGRS and the host computing system during the run-time of the graphics-based application, and (ii) automatically profiling the graphics-based application using the performance data and the analysis thereof.
1 . A multi-mode parallel graphics rendering system (MMPGRS) embodied within a computing system having (i) CPU memory space for storing one or more graphics-based applications and a graphics library for generating graphics commands and data (GCAD) during the run-time of the graphics-based application, (ii) one or more CPUs for executing said graphics-based applications, and (iii) a display device for displaying images containing graphics during the execution of said graphics-based applications, said MMPGRS comprising:
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;
a plurality of graphic processing pipelines (GPPLs) supporting a parallel graphics rendering process that employs one or more of said object division, image division and/or time division modes of parallel operation in order to execute graphic commands and process graphics data, and render pixel-composited images containing graphics for display on said display device during the run-time of said graphics-based application; and
an automatic mode control module for automatically controlling the mode of parallel operation of said MMPGRS during the run-time of said graphics-based application, by way of:
(i) automatically collecting performance data from at least one of said MMPGRS and said host computing system during the run-time of said graphics-based application, and
(ii) automatically profiling said graphics-based application using said performance data and the analysis thereof.
2 . The MMPGRS of claim 1 , wherein said automatic mode control module further comprises:
a parallel policy management module for determining the preferred mode of parallel operation to be used at any instant in time within the MMPGRS, based on the profiling and analysis results generated by the application profiling and analysis module; and
a distributed graphics function control module for controlling the mode of parallel operation of said MMPGRS at any instant in time, determined by the parallel policy management module.
3 . The MMPGRS of claim 1 , wherein said automatic mode control module performs its scene profiling and mode control functions using one or more data stores, including an application/scene profile database (DB) for storing a library of scene profiles for prior-known graphics-based applications.
4 . The MMPGRS of claim 3 , wherein said one or more data stores further include a historical repository for continuously storing up acquired performance data (i.e. having historical depth) and using this acquired performance data to construct application/scene profiles for scenes in particular graphics-based applications; and wherein said application/scene profile database is enriched with newly created profiles based on performance data acquired from said historical depository.
5 . The MMPGRS of claim 3 , wherein said automatic mode control module comprises a profiling and control cycle, wherein when a particular graphics-based application starts during run-time, said automatic mode control module automatically attempts to determine whether said graphics-based application is previously known to said MMPGRS and whether scene profiles have been recorded in said application/scene profile database for said previously known graphics-based application; and
wherein in the event that a particular graphics-based application is previously known, the optimal starting state of said MMPGRS is recommended by said application/scene profile database; and
wherein during the course of profiling scenes in said graphics-based application, said application/scene database is used by said automatic mode control module to dynamically control the mode of parallel operation of said MMPGRS during the run-time of said graphics-based application.
6 . The MMPGRS of claim 2 , wherein said automatic mode control module supports a scene profiling and mode control cycle, wherein said parallel policy management module automatically consults said application/scene profile database during the run-time of said graphics-based application, and determines which mode of parallel operation should operate during the rendering of any particular frame or set of frames in a scene of said graphics-based application, and then said distributed graphics function control module controls this mode of parallel operation during said frame or set of frames.
7 . The MMPGRS of claim 2 , wherein said automatic mode control module comprises a profiling and control cycle, wherein said parallel policy management module determines which mode of parallel operation should be operate at any instant in time by said distributed graphics function control module running a different mode of parallel operation at a different frame on a trial and error basis, while said application profiling and analysis module collects performance data from the host computing system and said MMPGRS and analyzes said collected performance data to produce scene profiles for storage in said application/scene profile database.
8 . The MMPGRS of claim 2 , wherein said automatic mode control module 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, so that the performance of said computing system is automatically optimized.
9 . The MMPGRS of claim 8 , said preventive conditions comprises CPU bottlenecks and need for the same frame buffer (FB) during successive frames.
10 . The MMPGRS of claim 2 , wherein said automatic mode control module supports a scene profiling and mode control cycle, during which said parallel policy management module considers a plurality of the following parameters selected from the group consisting of:
(1) high texture volume, where a high value of this parameter will trigger (i.e. indicate) a transition to the image division and/or time division mode of operation;
(2) high screen resolution, where a high value of this parameter will trigger a transition to the image division, and/or time division mode of operation,
(3) high pixel layer depth, where a high value of this parameter will trigger a transition to the image division mode of operation;
(4) high polygon volume, where a high value of this parameter will trigger a transition to the object division state of operation;
(5) fps drop, where this parameter will trigger a transition to the trial & error cycle;
(6) same frame buffer, where this parameter will trigger use in successive frames, as a preventive condition from time division mode of operation; and
(7) high video memory footprint, where a high value of this parameter will trigger a transition to the object division mode of operation.
11 . The MMPGRS of claim 4 , wherein said parallel policy management module determines whether a particular graphics-based application is listed in said application/scene profile database; if the particular graphics-based application is listed in said application/scene profile database, then the profile of the scene in said particular graphics-based application is taken from said application/scene profile database, a preferred mode of parallel operation is set, N successive frames are rendered, performance data is collected and added to said historical repository and analyzed for next optimal state; and upon conclusion of said particular graphics-based application, said application/scene database is updated by the collected data from said historical repository.
12 . The MMPGRS of claim 4 , wherein said application profiling and analysis module performs its analysis based on the data selected from the group consisting of:
performance data collected from several sources selected from the group consisting of vendor's driver, GPUs, chipset, and a graphic hub device) for estimating the performance and locating bottlenecks;
data stored in said historical repository; and
data stored in said application/scene profile database.
13 . The MMPGRS of claim 12 , wherein said performance data includes data elements selected from the group consisting of:
texture count;
screen resolution;
polygon volume;
(iv) at each GPU with the GPPL, the utilization of (a) geometry engine, (b) pixel engine, and (c) video memory;
Utilization of CPU;
total pixels rendered;
total geometric data rendered;
workload of each GPU; and
volumes of transferred data.
14 . The MMPGRS of claim 4 , wherein said application profiling and analysis module processes said data for real time analysis and performance of one or more tasks selected from the group consisting of:
Recognizing any particular graphics-based application;
Processing trial & error results;
Utilizing a application/scene profile from said application/scene profile database;
Performing data aggregation in said historical repository;
Analyzing input performance data;
Analyzing based on integration of (a) frame-based “atomic” performance data, (b) aggregated data in said historical repository, and (c) data in said application/scene profile database;
Detecting rendering algorithms used by said graphics-based application;
Detecting the use of the frame buffer (FB) in next successive frame as a preventive condition for time division mode;
Recognizing preventive conditions for other parallel modes;
Evaluating the pixel layer depth at the pixel subsystem of each GPU;
Determining the frame/sec count;
Detecting critical events (e.g. frame/sec drop);
Detecting bottlenecks in said GPPLs;
Measuring and balancing loads among said GPPLs;
Updating said application/scene profile database using data stored in said historical depository; and
Selecting an optimal mode of parallel operation.
15 . The MMPGRS of claim 1 , wherein said display device is a device selected from the group consisting of an flat-type display panel, a projection-type display panel, and other image display devices.
16 . The MMPGRS of claim 1 , wherein said computing system is a machine selected from the group consisting of a PC-level computer, information server, laptop, game console system, portable computing system, and any computational-based machine supporting the real-time generation and display of 3D graphics.