Multi-user multi-GPU render server apparatus and methods
First Claim
1. A method for rendering images comprising:
- A) executing a render server program on a server digital data processor;
B) responding to a first render request of a first data volume corresponding to a first digital image View from a client digital data processor in communication with the server digital data processor by breaking down the first data volume into two or more first sub-volumes;
C) executing two or more first render commands to render independently the two or more first sub-volumes;
D) sending in response to the first render request two or more first data sets corresponding to the two or more first sub-volumes to one or more graphics units on behalf of the client digital data processor, where the two or more first sub-volumes are rendered by the one or more graphics units on behalf of the client digital data processor;
E) storing in a first server side cache the rendered two or more first sub-volumes of step (D) at a first resolution;
F) sending the first digital image View to the client digital data processor;
G) responding to a second render request of a second data volume corresponding to a second digital image View from the client digital data processor in communication with the server digital data processor by breaking down the second data volume into two or more second sub-volumes;
H) sending in response to the second render request one or more second data sets corresponding to one or more second sub-volumes of the two or more second sub-volumes to one or more graphics units on behalf of the client digital data processor, where one of the two or more second sub-volumes corresponds with a first sub-volume of the first digital image View stored in the first server side cache at the first resolution, where the first sub-volume of the first digital image View is reused as the one of the two or more second sub-volumes;
I) executing one or more second render commands to render the one or more second sub-volumes; and
J) sending to the client digital data processor the rendered one or more second sub-volumes of step (I) in response to the second render request to modify the first digital image View and generate the second digital image View.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention provides, in some aspects, a system for rendering images, the system having one or more client digital data processors and a server digital data processor in communications coupling with the one or more client digital data processors, the server digital data processor having one or more graphics processing units. The system additionally comprises a render server module executing on the server digital data processor and in communications coupling with the graphics processing units, where the render server module issues a command in response to a request from a first client digital data processor. The graphics processing units on the server digital data processor simultaneously process image data in response to interleaved commands from (i) the render server module on behalf of the first client digital data processor, and (ii) one or more requests from (a) the render server module on behalf of any of the other client digital data processors, and (b) other functionality on the server digital data processor.
290 Citations
16 Claims
-
1. A method for rendering images comprising:
-
A) executing a render server program on a server digital data processor; B) responding to a first render request of a first data volume corresponding to a first digital image View from a client digital data processor in communication with the server digital data processor by breaking down the first data volume into two or more first sub-volumes; C) executing two or more first render commands to render independently the two or more first sub-volumes; D) sending in response to the first render request two or more first data sets corresponding to the two or more first sub-volumes to one or more graphics units on behalf of the client digital data processor, where the two or more first sub-volumes are rendered by the one or more graphics units on behalf of the client digital data processor; E) storing in a first server side cache the rendered two or more first sub-volumes of step (D) at a first resolution; F) sending the first digital image View to the client digital data processor; G) responding to a second render request of a second data volume corresponding to a second digital image View from the client digital data processor in communication with the server digital data processor by breaking down the second data volume into two or more second sub-volumes; H) sending in response to the second render request one or more second data sets corresponding to one or more second sub-volumes of the two or more second sub-volumes to one or more graphics units on behalf of the client digital data processor, where one of the two or more second sub-volumes corresponds with a first sub-volume of the first digital image View stored in the first server side cache at the first resolution, where the first sub-volume of the first digital image View is reused as the one of the two or more second sub-volumes; I) executing one or more second render commands to render the one or more second sub-volumes; and J) sending to the client digital data processor the rendered one or more second sub-volumes of step (I) in response to the second render request to modify the first digital image View and generate the second digital image View. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for rendering images comprising:
-
A) executing a render server program on a server digital data processor; B) responding to a first render request of a first data volume corresponding to a first View from a client digital data processor in communication with the server digital data processor by breaking down the first data volume into two or more first sub-volumes; C) executing two or more first render commands to render independently the two or more first sub-volumes; D) sending in response to the first render request two or more first data sets corresponding to the two or more first sub-volumes to one or more graphics units on behalf of the client digital data processor where the two or more first sub-volumes are rendered by the one or more graphics units on behalf of the client digital data processor; E) storing in a first server side cache the rendered two or more first sub-volumes corresponding to the first View at a first resolution; F) sending the first View to the client digital data processor; G) responding to a second render request of a second data volume corresponding to a second View from the client digital data processor in communication with the server digital data processor by breaking down the second data volume into two or more second sub-volumes; H) sending in response to the second render request one or more second data sets corresponding to one or more second sub-volumes of the two or more second sub-volumes to one or more graphics units on behalf of the client digital data processor, where one of the two or more second sub-volumes corresponds with a first sub-volume of the first View stored in the first server side cache at the first resolution, where the first sub-volume of the first View is reused as the one of the two or more second sub-volumes; I) executing one or more second render commands to render the one or more second sub-volumes not rendered in the first View; and J) sending to the client digital data processor the rendered one or more second sub-volumes of step (I) in response to the second render request to modify the first View and generate the second View. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system for rendering images comprising:
-
one or more client digital data processors; a render server, executing on a server digital data processor, the render server responding to a first render request of a first data volume corresponding to a first View from the one or more client digital data processors by breaking down the first data volume into two or more first sub-volumes, executing two or more first render commands to render independently the two or more first sub-volumes, where the render server responds to the first render requests by sending to the client digital data processor two or more first data sets corresponding to the two or more first sub-volumes to one or more graphics units corresponding to the first View at a first resolution which is stored in a server side cache; the render server responding to a second render request of a second data volume corresponding to a second View by breaking down the second data volume into two or more second sub-volumes, sending in response to the second render request one or more second data sets corresponding to one or more second sub-volumes of the two or more second sub-volumes to one or more graphics units on behalf of the one or more client digital data processor, where one of the two or more second sub-volumes corresponds with a first sub-volume of the first View stored in a first server side cache at the first resolution, where the first sub-volume of the first View is reused as the one of the two or more second sub-volumes; and the render server executing one or more second render commands to render the one or more second sub-volumes not rendered in the first View, calculating and sending to the one or more client digital data processor the rendered one or more second sub-volumes in response to the second render request to modify the first View and generate the second View. - View Dependent Claims (16)
-
Specification