Multi-user multi-GPU render server apparatus and methods
First Claim
1. A system for rendering images comprising:
- a) a render server;
b) a render server program installed on the render server;
c) a server memory accessible by the render server; and
d) one or more graphics processing units (GPU) each including a GPU resource accessible by the render server;
where the render server program responds to a first render request of a first client digital data processor in communication with the render server,where the first render request is a 3D volume rendering of a first data set to generate a first View, where the render server program divides the first data set into two or more first sub-volumes, the render server program executes two or more first render commands to render independently the two or more first sub-volumes with one or more graphics processing units, where the rendered two or more first sub-volumes are sent to the first client digital data processor and stored in a first texture memory,where the render server program responds to a second render request from the first client digital data processor,where the second render request is a 3D volume rendering of the first data set to generate a second View,where the render server program divides the first data set into two or more second sub-volumes, where the render server program executes one or more second render commands to render simultaneously or in an alternating fashion one or more of the two or more second sub-volumes with one or more graphics processing units such that processing of a third render request from a second client digital data processor in communication with the render server is undertaken by switching between rendering the second render request interleaved in an alternating fashion with the third render request, where the rendered one or more of the two or more second sub-volumes are sent to the first client digital data processor.
0 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.
-
Citations
20 Claims
-
1. A system for rendering images comprising:
-
a) a render server; b) a render server program installed on the render server; c) a server memory accessible by the render server; and d) one or more graphics processing units (GPU) each including a GPU resource accessible by the render server; where the render server program responds to a first render request of a first client digital data processor in communication with the render server, where the first render request is a 3D volume rendering of a first data set to generate a first View, where the render server program divides the first data set into two or more first sub-volumes, the render server program executes two or more first render commands to render independently the two or more first sub-volumes with one or more graphics processing units, where the rendered two or more first sub-volumes are sent to the first client digital data processor and stored in a first texture memory, where the render server program responds to a second render request from the first client digital data processor, where the second render request is a 3D volume rendering of the first data set to generate a second View, where the render server program divides the first data set into two or more second sub-volumes, where the render server program executes one or more second render commands to render simultaneously or in an alternating fashion one or more of the two or more second sub-volumes with one or more graphics processing units such that processing of a third render request from a second client digital data processor in communication with the render server is undertaken by switching between rendering the second render request interleaved in an alternating fashion with the third render request, where the rendered one or more of the two or more second sub-volumes are sent to the first client digital data processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for rendering images comprising:
-
a) a render server; b) a render server program residing on the render server; c) a server memory accessible by the render server; and d) one or more graphics processing units (GPU) each including a GPU resource accessible by the render server; where the render server program responds to a first render request of a first client digital data processor in communication with the render server, where the first render request is a 3D volume rendering of a first data set to generate a first View, where the render server program divides the first data set into a first sub-volume and a second sub-volume, the render server program executes two or more first render commands to render independently the first sub-volume and the second sub-volume with one or more graphics processing units, where the rendered first sub-volume and the second sub-volume corresponding to the first View are sent to the first client digital data processor and stored in one or more texture memory, where the render server program responds to a second render request from the first client digital data processor, where the second render request is a 3D volume rendering of the first data set to generate a second View, where the render server program divides a second data set into a third sub-volume and a fourth sub-volume, where the render server program executes a second render command to render the third and fourth sub-volumes with one or more graphics processing units such that processing of a third render request from a second client digital data processor in communication with the render server is undertaken by switching between rendering the second render request interleaved in an alternating fashion with the third render request, where the rendered third and fourth sub-volumes are sent to the first client digital data processor and used to generate the second View. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for rendering images comprising:
-
a) a render server; b) a render server program residing on the render server; c) a server memory accessible by the render server; and d) one or more graphics processing units (GPU) each including a GPU resources accessible by the render server; where the render server program responds to a high-resolution render request of a first client digital data processor in communication with the render server where the high-resolution render request is a 3D volume rendering of a first data set to generate a first View, where the render server program divides the first data set into two or more first sub-volumes, the render server program executes two or more first render commands to render independently the two or more first sub-volumes with one or more graphics processing units, where the rendered two or more first sub-volumes corresponding to the first View are sent to the first client digital data processor and stored in a first texture memory, where the render server program responds to an interactive render request from the first client digital data processor, where the interactive render request is a 3D volume rendering of the first data set to generate a second View, where the render server program divides a second data set into two or more second sub-volumes, where when one of the two or more second sub-volumes corresponds with a first sub-volume of the first View stored in the first texture memory then the render server program executes one or more second render commands to render one or more second sub-volumes of the two or more second sub-volumes with one or more graphics processing units such that processing of a third render request from a second client digital data processor in communication with the render server is undertaken by switching between rendering the second render request interleaved in an alternating fashion with the third render request, where the rendered one or more second sub-volumes are sent to the first client digital data processor, where the first sub-volume of the first View stored in the first texture memory and the one or more second sub-volumes are used to generate the second View. - View Dependent Claims (17, 18, 19, 20)
-
Specification