Parallel processing of object subtrees for multiprocessor systems
US-9001114-B1 · Apr 7, 2015 · US
US9959144B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9959144-B2 |
| Application number | US-201414769428-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 20, 2014 |
| Priority date | Aug 20, 2014 |
| Publication date | May 1, 2018 |
| Grant date | May 1, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods for optimizing hardware resource utilization when processing variable-precision data are provided. Application data objects are processed using either a central processing unit (CPU) or the relatively lower precision data processing requirements of a dedicated math processing unit, e.g., a graphics processing unit (GPU), based on a level of precision determined for each application data object. The level of precision is used to calculate at least one bounding value for each application data object. The bounding value is compared to a selected precision threshold in order to determine whether the application data object can be processed by the GPU at a relatively lower level of precision without an undesirable loss of computational precision.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for optimizing hardware resource utilization when processing variable-precision data, the method comprising: determining, by a central processing unit, a level of precision of an application data object to be processed, wherein the application data object is one of a plurality of application data objects represented by different nodes of a scene graph, the different nodes including transform nodes corresponding to the plurality of application data objects, each transform node specifying parameters for one or more data transforms to be applied to a corresponding application data object; calculating, by the central processing unit, at least one bounding value for the application data object based on the determined level of precision, the at least one bounding value corresponding to a maximum extent of a bounding volume for the application data object; determining, by the central processing unit, whether the calculated bounding value exceeds a precision threshold; when the calculated bounding value is determined not to exceed the precision threshold, sending, by the central processing unit to a graphics processing unit, the application data object to be processed by the graphics processing unit and rendered to a display device coupled to the graphics processing unit; when the calculated bounding value is determined to exceed the precision threshold: processing, by the central processing unit, the application data object according to a predetermined set of operations; generating, by the central processing unit, an output dataset based on the processed application data object; and sending, to the graphics processing unit, the generated output dataset to be rendered to the display device; detecting a change in at least one of the parameters specified by the transform node corresponding to the application data object to be processed; when the bounding value is determined to exceed the precision threshold: modifying the scene graph based on the detected change; reprocessing the application data object based on the modified scene graph; and regenerating the output dataset based on the reprocessed application data object; and when the bounding value is determined to be within the precision threshold, sending an indication of the detected change to the graphics processing unit, the graphics processing unit being configured to apply the change automatically to the application data object without reprocessing and without having to modify the scene graph. 2. The method of claim 1 , wherein the application data object is a three-dimensional (3D) graphical model, and the bounding value includes a plurality of bounding values corresponding to coordinates of a bounding box in 3D space. 3. The method of claim 2 , wherein processing the application data object comprises: calculating at least one data transform for representing the application data object within 3D space; and applying the calculated data transform to the application data object. 4. The method of claim 3 , wherein the calculated data transform includes one or more linear transformations to be applied to the application data object. 5. The method of claim 4 , wherein the predetermined set of operations includes allocating memory for storing a copy of the application data object, copying the application data object to the allocated memory, and applying the one or more linear transformations to the application data object. 6. The method of claim 1 , wherein the level of precision of the application data object is relatively higher than a data precision associated with the graphics processing unit for processing data, and the method further comprises converting the level of precision of the application data object to the data precision associated with the graphics processing unit. 7. The method of claim 6 , wherein the application data object is represented using a double-precision floating-point binary data format, and converting the level of precision of the application data object comprises converting the application data object from the double-precision floating-point binary data format to a single-precision floating-point binary data format. 8. The method of claim 1 , further comprising: determining a type of each of the plurality of application data objects; and modifying the precision threshold for each application data object to be processed based on the determined type of that application data object. 9. The method of claim 1 , wherein the scene graph corresponds to a graphical representation of a hydrocarbon reservoir, and the plurality of application data objects correspond to different stratigraphic features associated with the hydrocarbon reservoir being represented. 10. The method of claim 9 , wherein the different stratigraphic features of the hydrocarbon reservoir include wells, surfaces, horizons, volumes, and grids, and each of the plurality of application data objects include coordinate values representing physical locations of the structural components of the hydrocarbon reservoir. 11. A system for optimizing hardware resource utilization when processing variable-precision data, the system comprising: at least one processor; and a machine-readable medium comprising instructions stored therein, which when executed by the processor, cause the processor to perform functions including functions to: determine a level of precision of an application data object to be processed wherein the application data object is one of a plurality of application data objects represented by different nodes of a scene graph, the different nodes including transform nodes corresponding to the plurality of application data objects, each transform node specifying parameters for one or more data transforms to be applied to a corresponding application data object; calculate at least one bounding value for the application data object based on the determined level of precision, the at least one bounding value corresponding to a maximum extent of a bounding volume for the application data object; determine whether the calculated bounding value exceeds a precision threshold; send, to a graphics processing unit, the application data object to be processed by the graphics processing unit and rendered to a display device coupled to the graphics processing unit, when the calculated bounding value is determined not to exceed the precision threshold; when the calculated bounding value is determined to exceed the precision threshold: process the application data object according to a predetermined set of operations performed by the processor; generate an output dataset based on the processed application data object; and send, to the graphics processing unit, the generated output dataset to be rendered to the display device; detect a change in at least one of the parameters specified by the transform node corresponding to the application data object to be processed; when the bounding value is determined to exceed the precision threshold: modify the scene graph based on the detected change; reprocess the application data object based on the modified scene graph; and regenerate the output dataset based on the reprocessed application data object; and when the bounding value is determined to be within the precision threshold, send an indication of the detected change to the graphics processing unit, the graphics processing unit being configured to apply the change automatically to the application data object without reprocessing and without having to modify the scene graph. 12. The system of claim 11 , wherein the application data object is a three-dimensional (3D)
the resource being the memory · CPC title
Three-dimensional [3D] image rendering · CPC title
Digital output to display device {; Cooperation and interconnection of the display device with other functional units} · CPC title
considering hardware capabilities · CPC title
General purpose rendering architectures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.