Method of operation for parallel LCP solver
First Claim
Patent Images
1. A computing device for resolving linear complementarity problems (LCPs) related to a physics-based initial data set characterizing a plurality of objects and a plurality of constraints restricting movement of at least one object in the plurality of objects, the computing device comprising:
- a main memory;
a central processing unit (CPU) configured to;
generate the physics-based initial data set characterizing the plurality of objects and the plurality of constraints, andstore the physics-based initial data set and the plurality of constraints in the main memory restricting movement of at least one object in the plurality of objects; and
a co-processing unit comprising a plurality of island processing engines (IPEs) arranged in parallel and configured to;
receive the physics-based initial data set from the main memory,define a plurality of island data sets from the physics-based initial data set, wherein each one of the plurality of island data sets corresponds to at least one LCP,transfer each one of the plurality of island data sets to a corresponding one of the plurality of IPEs for processing to produce output data, andanimate a physics-based interaction of the plurality of objects based on the output data for display,wherein each IPE comprises a plurality of execution units arranged in parallel and configured to;
define a plurality of data portions from an island data set, wherein each one of the plurality of data portions comprises data associated with an object or a constraint characterized in the initial data set,transfer each one of the plurality of data portions to a corresponding one of the plurality of execution units, andprocess each one of the plurality of data portions in parallel to produce output data that solves the corresponding at least one LCP.
0 Assignments
0 Petitions
Accused Products
Abstract
A method of operating a Linear Complementarity Problem (LCP) solver is disclosed, where the LCP solver is characterized by multiple execution units operating in parallel to implement a competent computational method adapted to resolve physics-based LCPs in real-time.
-
Citations
15 Claims
-
1. A computing device for resolving linear complementarity problems (LCPs) related to a physics-based initial data set characterizing a plurality of objects and a plurality of constraints restricting movement of at least one object in the plurality of objects, the computing device comprising:
-
a main memory; a central processing unit (CPU) configured to; generate the physics-based initial data set characterizing the plurality of objects and the plurality of constraints, and store the physics-based initial data set and the plurality of constraints in the main memory restricting movement of at least one object in the plurality of objects; and a co-processing unit comprising a plurality of island processing engines (IPEs) arranged in parallel and configured to; receive the physics-based initial data set from the main memory, define a plurality of island data sets from the physics-based initial data set, wherein each one of the plurality of island data sets corresponds to at least one LCP, transfer each one of the plurality of island data sets to a corresponding one of the plurality of IPEs for processing to produce output data, and animate a physics-based interaction of the plurality of objects based on the output data for display, wherein each IPE comprises a plurality of execution units arranged in parallel and configured to; define a plurality of data portions from an island data set, wherein each one of the plurality of data portions comprises data associated with an object or a constraint characterized in the initial data set, transfer each one of the plurality of data portions to a corresponding one of the plurality of execution units, and process each one of the plurality of data portions in parallel to produce output data that solves the corresponding at least one LCP. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device for resolving linear complementarity problems (LCPs) related to a physics-based initial data set characterizing a plurality of objects and a plurality of constraints restricting movement of at least one object in the plurality of objects, the computing device comprising:
-
a main memory; a central processing unit (CPU) configured to; generate an initial data set defining a physics-based problem, and store the initial data set in the main memory; a graphics processing unit (GPU) configured to animate a physics-based interaction of the plurality of objects for display; and a physics processing unit (PPU) comprising a plurality of island processing engines (IPEs) arranged in parallel and configured to; receive the physics-based initial data set from the main memory, define a plurality of island data sets from the physics-based initial data set, wherein each one of the plurality of island data sets corresponds to at least one LCP, transfer each one of the plurality of island data sets to a corresponding one of the plurality of IPEs for processing to produce output data, and transfer the output data to the GPU for animating the physics-based interaction, wherein each IPE comprises a plurality of execution units arranged in parallel and configured to; define a plurality of data portions from an island data set, wherein each one of the plurality of data portions comprises data associated with an object or a constraint characterized in the initial data set, transfer each one of the plurality of data portions to a corresponding one of the plurality of execution units, and process each one of the plurality of data portions in parallel to produce output data that solves the corresponding at least one LCP.
-
-
12. A processing unit for resolving linear complementarity problems (LCPs) related to a physics-based initial data set characterizing a plurality of objects and a plurality of constraints restricting movement of at least one object in the plurality of objects, the processing unit configured to:
-
store an island data set derived from the initial data set in a memory, wherein the island data set defines a whole gradient vector; define a plurality of subspaces based on the island data set, wherein each one of the plurality of subspaces has a data type and comprises a group of constraint rows that corresponds to a portion of the whole gradient vector; assign a first subspace in the plurality of subspaces to a first execution unit within the processing unit based on the data type associated with the first subspace; assign a second subspace in the plurality of subspaces to a second execution unit within the processing unit based on the data type associated with the second subspace; process the first subspace and the second subspace in parallel to produce output data that resolves at least a portion of the LCP; and based on the output data, animate a physics-based interaction of the plurality of objects for display. - View Dependent Claims (13, 14, 15)
-
Specification