Optimizing computer hardware resource utilization when processing variable precision data

US9959144B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9959144-B2
Application numberUS-201414769428-A
CountryUS
Kind codeB2
Filing dateAug 20, 2014
Priority dateAug 20, 2014
Publication dateMay 1, 2018
Grant dateMay 1, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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)

Assignees

Inventors

Classifications

  • 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

  • G06F9/5044Primary

    considering hardware capabilities · CPC title

  • General purpose rendering architectures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9959144B2 cover?
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 appl…
Who is the assignee on this patent?
Landmark Graphics Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/5044. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 01 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).