IP Library Granted Patent US 12,062,111
Granted Patent B2
US 12,062,111 · App. 17/723,400 · Granted Aug 13, 2024

Multi-user multi-GPU render server apparatus and methods

Inventors: Malte Westerhoff (Berlin, DE); Detlev Stalling (Berlin, DE)
Assignee: PME IP PTY LTD
G06T1/20G06F3/14G06T15/005G09G5/363H04L12/413H04L12/4625H04L51/00H04L67/08G06T2210/52G09G2340/0407G09G2350/00G09G2354/00G09G2360/06G09G2380/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,062,111
App. No.
17/723,400
Granted
Aug 13, 2024
Kind
B2
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.

Claims (36)

1. A system for rendering images comprising:

a) a system bus;

b) a computer program;

c) a memory;

d) a digital data processor; and

e) one or more graphics processing units (GPU), where all of which (b) through (e) are in electronic communication via the system bus, where the computer program responds to a first request, where the first request is a render request of a first three dimensional (3D) volume of a data set to generate a first View, where the computer program divides the first 3D volume into a first 3D sub-volume and a second 3D sub-volume, where the computer program executes two or more first commands to independently generate a rendered first 3D sub-volume and a rendered second 3D sub-volume with the one or more GPU, where the rendered first 3D sub-volume comprises a plurality of first voxels, where the rendered second 3D sub-volume comprises a plurality of second voxels, where a voxel of the first View is assigned to either a first voxel of the plurality of first voxels that intersects a viewing ray or a second voxel of the plurality of second voxels that intersects the viewing ray, where the voxel is assigned to a maximum gray value of the first voxel and the second voxel, where the computer program responds to a second request, where the second request is a render request of a second 3D volume of the data set to generate a second View, where the computer program divides the second 3D volume into at least a third 3D sub-volume, where the computer program executes one or more second commands to generate a rendered third 3D sub-volume with the one or more GPU to generate the second View.

2. The system of claim 1 , where the computer program resides in the memory.

3. The system of claim 1 , further comprising storing one or more of the rendered first 3D sub-volume, the rendered second 3D sub-volume and the rendered third 3D sub-volume in the memory for reuse.

4. The system of claim 3 , where the memory is accessible by the digital data processor.

5. The system of claim 3 , where the memory is attached to a render server.

6. The system of claim 5 , where the render server is accessible on a network.

7. The system of claim 3 , where one or both the first View and the second View are stored in the memory.

8. The system of claim 1 , where the rendered first 3D sub-volume and the rendered second 3D sub-volume are combined to generate the first View.

9. The system of claim 1 , where the data set is generated by a device selected from the group consisting of a computer tomographic scanner, a magnetic resonance imaging scanner, a confocal microscope, an ultrasound device, a positron emission tomographic scanner, and an x-ray scanner.

10. A system for rendering images comprising:

a) a system bus;

b) a host memory;

c) a render program;

d) one or more digital data processors;

e) one or more graphics memories; and

f) one or more graphics processing units (GPUs), where all of which (b) through (f) are in electronic communication via the system bus, where the computer program responds to a first request, where the first request is a render request of a first three dimensional (3D) volume of a data set to generate a first View, where the computer program divides the first 3D volume into a first 3D sub-volume and a second 3D sub-volume, where the computer program executes two or more first commands to independently generate a rendered first 3D sub-volume and a rendered second 3D sub-volume with the one or more GPUs, where the rendered first 3D sub-volume is a first cuboid in 3D-space comprising a plurality of first voxels with varying grey values, where the rendered second 3D sub-volume is a second cuboid in 3D-space comprising a plurality of second voxels with varying grey values, where a voxel of the first View is assigned to either a first voxel of the plurality of first voxels that intersects a viewing ray or a second voxel of the plurality of second voxels that intersects the viewing ray, where the voxel is assigned to a maximum gray value of the first voxel and the second voxel, where the computer program responds to a second request, where the second request is a render request of a second 3D volume of the data set to generate a second View, where the computer program divides the second 3D volume into at least a third 3D sub-volume, where the computer program executes one or more second commands to generate a rendered third 3D sub-volume with the one or more GPUs, where the rendered third 3D sub-volume is used to generate the second View.

11. The system of claim 10 , where the computer program resides in the host memory.

12. The system of claim 10 , further comprising storing one or more of the rendered first 3D sub-volume, the rendered second 3D sub-volume and the rendered third 3D sub-volume in the host memory for reuse.

13. The system of claim 10 , where the host memory is accessible by the one or more digital data processors.

14. The system of claim 10 , further comprising a server, where the host memory is accessible through a network by the server.

15. The system of claim 14 , where the render program is accessible on the network.

16. The system of claim 10 , where one or both the first View and the second View are stored in the host memory.

17. The system of claim 10 , where the rendered first 3D sub-volume and the rendered second 3D sub-volume are combined to generate the first View.

18. The system of claim 10 , where the data set is generated by a device selected from the group consisting of a computer tomographic scanner, a magnetic resonance imaging scanner, a confocal microscope, an ultrasound device, a positron emission tomographic scanner, and an x-ray scanner.

19. A system for rendering images comprising:

a) a system bus;

b) a computer program;

c) a memory;

d) a digital data processor; and

e) one or more graphics processing units (GPU), where all of which (b) through (e) are in electronic communication via the system bus, where the computer program responds to a first request, where the first request is a high-resolution render request of a first three dimensional (3D) volume of a data set to generate a first View, where the computer program divides the first 3D volume into a first 3D sub-volume and a second 3D sub-volume, where the computer program executes two or more first commands to independently generate a high-resolution rendered first 3D sub-volume and a high-resolution rendered second 3D sub-volume with the one or more GPU, where the rendered first 3D sub-volume comprises a plurality of first voxels, where the rendered second 3D sub-volume comprises a plurality of second voxels, where a voxel of the first View is assigned to either a first voxel of the plurality of first voxels that intersects a viewing ray or a second voxel of the plurality of second voxels that intersects the viewing ray, where the voxel is assigned to a maximum gray value of the first voxel and the second voxel, where the computer program responds to a second request, where the second request is an interactive render request to generate a second View, where the computer program generates a low-resolution rendered first 3D sub-volume from the high-resolution rendered first 3D sub-volume to generate the second View.

20. The system of claim 19 , further comprising storing one or both of the high-resolution rendered first 3D sub-volume, and the high-resolution rendered second 3D sub-volume in the memory.

Continuity (7)
Continuation 16834909 · Mar 30, 2020
Continuation 15853673 · Dec 22, 2017
Continuation In Part 13831967 · Mar 15, 2013
Continuation 13684464 · Nov 23, 2012
Continuation 12275421 · Nov 21, 2008
Provisional Application 60989881 · Nov 23, 2007
Related Publication 20220253967A1 · Aug 11, 2022
Cited By (2)
US 12,537,090 US 12,670,539