Multi-user multi-GPU render server apparatus and methods
First Claim
1. A system for rendering images comprising:
- A. a first client digital data processor and a second client digital data processor;
B. a server digital data processor in communications coupling with the first client digital data processor and the second client digital data processor, the server digital data processor comprising a graphics processing unit;
C. a render server, executing on the server digital data processor and in communications coupling with the graphics processing unit, the render server responding to a first render request to render a first image from the first client digital data processor by issuing one or more render commands to the graphics processing unit to generate a first rendered image;
D. the render server transferring the first rendered image to the first client digital data processor, where the first rendered image is stored in memory attached to the render server;
E. the render server responding to a second render request from the second client digital data processor to render a second image by issuing one or more render commands to the graphics processing unit;
F. the render server responding to a third render request to render a third image from the first client digital data processor, where the render server breaks down the third render request into a first partial render request and a second partial render request, where the first partial render request corresponds to a portion of a third rendered image that has been rendered in the first rendered image, where a second partial render request corresponds to a portion of the third rendered image that has not been rendered in the first rendered image, where the render server uses the stored first rendered image to generate the first partial render request;
G. the render server issuing two or more interleaved render commands to the graphics processing unit so that commands corresponding to the second render request and the second partial render request are processed by the graphics processing unit in an alternating fashion to generate a second rendered image and a second partial rendered image;
H. the render server transferring the second rendered image to the second client digital data processor;
I. the render server generating a third rendered image based on the stored first rendered image and the second partial render request; and
J. the render server transferring the third rendered image 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.
346 Citations
19 Claims
-
1. A system for rendering images comprising:
-
A. a first client digital data processor and a second client digital data processor; B. a server digital data processor in communications coupling with the first client digital data processor and the second client digital data processor, the server digital data processor comprising a graphics processing unit; C. a render server, executing on the server digital data processor and in communications coupling with the graphics processing unit, the render server responding to a first render request to render a first image from the first client digital data processor by issuing one or more render commands to the graphics processing unit to generate a first rendered image; D. the render server transferring the first rendered image to the first client digital data processor, where the first rendered image is stored in memory attached to the render server; E. the render server responding to a second render request from the second client digital data processor to render a second image by issuing one or more render commands to the graphics processing unit; F. the render server responding to a third render request to render a third image from the first client digital data processor, where the render server breaks down the third render request into a first partial render request and a second partial render request, where the first partial render request corresponds to a portion of a third rendered image that has been rendered in the first rendered image, where a second partial render request corresponds to a portion of the third rendered image that has not been rendered in the first rendered image, where the render server uses the stored first rendered image to generate the first partial render request; G. the render server issuing two or more interleaved render commands to the graphics processing unit so that commands corresponding to the second render request and the second partial render request are processed by the graphics processing unit in an alternating fashion to generate a second rendered image and a second partial rendered image; H. the render server transferring the second rendered image to the second client digital data processor; I. the render server generating a third rendered image based on the stored first rendered image and the second partial render request; and J. the render server transferring the third rendered image to the first client digital data processor. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for rendering images comprising:
-
A. a first client digital data processor, a second client digital data processor, and a third client digital data processor; B. a server digital data processor in communications coupling with the first client digital data processor, the second client digital data processor, and the third client digital data processor, the server digital data processor comprising a graphics processing unit; C. a render server, executing on the server digital data processor and in communications coupling with the graphics processing unit, the render server responding to a first render request to render a first image from the first client digital data processor at a time t, by issuing one or more render commands to the graphics processing unit to generate a first rendered image; D. the render server responding to a second render request to render a second image from the second client digital data processor at a time t+d1, where the render server breaks down the second render request into a first partial render request and a second partial render request; E. the render server issuing one or more render commands to the graphics processing unit to render the first partial render request to generate a first partial rendered image; F. the render server issues the one or more render commands in step E before completing the one or more render commands in step C; G. the render server transferring the first rendered image to the first client digital data processor; H. the render server responding to a third render request to render a third image from the third client digital data processor at a time t+d2 by issuing one or more render commands to the graphics processing unit to generate a third rendered image, where d2>
d1;I. the render server issues the one or more render commands generated in step H before completing the one or more render commands in step E; J. the render server issuing one or more render commands to the graphics processing unit to generate a second partial rendered image; K. the render server issues the one or more render commands in step J before completing the one or more render commands in step H; L. the render server transferring the third rendered image to the third client digital data processor; M. the render server generating a second rendered image from the first partial rendered image and the second partial rendered image; and N. the render server transferring the second rendered image to the second client digital data processor. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
Specification