Multi-user/multi-GPU render server apparatus and methods
First Claim
1. A system for rendering images comprising:
- A. one or more client digital data processors;
B. a server digital data processor in communications coupling with the one or more client digital data processors, the server digital data processor comprising one or more graphics processing units;
C. a render server, executing on the server digital data processor and in communications coupling with the graphics processing units, the render server responding to a render request from the client digital data processor by issuing one or more render commands to the one or graphics processing units;
D. the render server responding to render requests from a plurality of the client digital data processors by issuing one or more interleaved render commands to the one or more graphics processing units so that commands corresponding to different respective render requests are processed by the one or more graphics processing units in an alternating fashion; and
E. the render server breaking down one or more render requests received from one or more client digital data processors into multiple smaller render requests each requiring one or both less compute time and less graphics resources than the render request from which it was broken down in response to determining that graphics resources required for processing the one or more render requests exceed graphics resources associated with the graphics processing unit, where at least one of the one or more graphics processing units concurrently renders images in response to the one or more interleaved render commands requests if the render server determines that graphics resources required for processing the one or more render requests do exceed graphics resources associated with the graphics processing unit.
4 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.
315 Citations
29 Claims
-
1. A system for rendering images comprising:
-
A. one or more client digital data processors; B. a server digital data processor in communications coupling with the one or more client digital data processors, the server digital data processor comprising one or more graphics processing units; C. a render server, executing on the server digital data processor and in communications coupling with the graphics processing units, the render server responding to a render request from the client digital data processor by issuing one or more render commands to the one or graphics processing units; D. the render server responding to render requests from a plurality of the client digital data processors by issuing one or more interleaved render commands to the one or more graphics processing units so that commands corresponding to different respective render requests are processed by the one or more graphics processing units in an alternating fashion; and E. the render server breaking down one or more render requests received from one or more client digital data processors into multiple smaller render requests each requiring one or both less compute time and less graphics resources than the render request from which it was broken down in response to determining that graphics resources required for processing the one or more render requests exceed graphics resources associated with the graphics processing unit, where at least one of the one or more graphics processing units concurrently renders images in response to the one or more interleaved render commands requests if the render server determines that graphics resources required for processing the one or more render requests do exceed graphics resources associated with the graphics processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for rendering images comprising:
-
A. one or more client digital data processors; B. a server digital data processor in communications coupling with the one or more client digital data processors, the server digital data processor comprising one or more graphics processing units; C. a render server, executing on the server digital data processor and in communications coupling with the graphics processing units, the render server responding to a render request from the client digital data processor by issuing one or more render commands to the one or graphics processing units; D. the render server responding to render requests from a plurality of the client digital data processors by issuing interleaved render commands to the one or more graphics processing units so that commands corresponding to different respective render requests are processed by the one or more graphics processing units in an alternating fashion; and E. the render server responding to render requests from a plurality of the client digital data processors by determining if graphics resources required for processing the render requests exceed graphics resources associated with the graphics processing unit, the render server breaking down render requests received from the one or more client digital data processors into multiple smaller render requests if the graphics resources required for processing the render requests exceed the graphics resources associated with the graphics processing unit, each smaller render request requiring less compute time and/or less graphics resources than the render request from which it was broken down, where the graphics processing unit concurrently renders images in response to one or more interleaved render commands if the graphics resources required for processing the render requests do not exceed the graphics resources associated with the graphics processing unit, where at least one of the one or more graphics processing units concurrently renders images in response to the one or more interleaved render commands requests if the render server determines that graphics resources required for processing the one or more render requests do exceed graphics resources associated with the graphics processing unit. - View Dependent Claims (19)
-
-
20. A method for rendering images comprising:
-
A. executing, on a server digital data processor;
a render server;B. issuing one or more interleaved commands with the render server in response to one or more render requests from one or more client digital data processors; C. rendering images with one or more graphics processing units in response to the interleaved commands from the render server on behalf of the one or more client digital data processors; D. the rendering images includes the graphics processing unit concurrently rendering images in response to the interleaved render commands if the render server determines that graphics resources required for processing the one or more render requests do not exceed graphics resources associated with the graphics processing unit; and E. the rendering images includes the render server breaking down render requests received from one or more client digital data processors into multiple smaller render requests if the render server determines that graphics resources required for processing the one or more render requests do not exceed graphics resources associated with the graphics processing unit, each smaller render request requiring less compute time and/or less graphics resources than the render request from which it was broken down, where at least one of the one or more graphics processing units concurrently renders images in response to the one or more interleaved render commands requests if the render server determines that graphics resources required for processing the one or more render requests do exceed graphics resources associated with the graphics processing unit. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification