IP Library Granted Patent US 11,887,563
Granted Patent B1
US 11,887,563 · App. 18/049,555 · Granted Jan 30, 2024

Method and computer program product for performing queries and displaying visual representations of their results using graphics processing units

Inventors: Todd L. Mostak (San Francisco, CA); Christopher Root (Mill Valley, CA)
Assignee: Heavy.ai, Inc.
G09G5/363G06F3/14G06T1/20G06T1/60G09G5/001G09G5/393G09G5/397G09G2340/02G09G2360/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 11,887,563
App. No.
18/049,555
Granted
Jan 30, 2024
Kind
B1
Abstract

A system and method runs a query using a GPU and generates a visualization of the query using the same GPU.

Claims (28)

1. A method of displaying results of a request, comprising:

receiving the request comprising at least one query to be performed using at least one data set;

allocating different portions of each of the at least one data set to different ones of a plurality of graphics processing units;

performing the at least one query at each of the graphics processing units in the plurality using the different portions of the at least one data set allocated to such graphics processing unit to produce a set of results;

at each of the plurality of graphics processing units, causing to be graphically at least partly rendered, the set of results of the query performed using the portions of the at least one data set allocated to said graphics processing unit;

combining the at least partly rendered set of results from each of the plurality of graphics processing units; and

providing for display rendered results responsive to the combined at least partly rendered set of results.

2. The method of claim 1 , wherein the portions of the at least one data set allocated were divided into such portions before the request was received.

3. The method of claim 1 , additionally comprising completing a graphical rendering of the rendered results by a single one of the plurality of graphics processing units based on a size of a memory of the single one of the plurality of graphics processing units being not smaller than a size of a memory of each of others of the plurality of graphics processing units.

4. The method of claim 3 , wherein the completing the graphical rendering step is at least partly performed at each of at least some of the plurality of graphics processing units, responsive to the graphically at least partly rendered set of results from another of the plurality of the graphics processing units based on at least one of a plurality of parameters for the request.

5. The method of claim 1 , wherein a sequence in at which the combining step is performed is based on at least one of a plurality of parameters for the request indicating the at least partly rendered results from one graphics processing unit in the plurality has a potential to overlap the at least partly rendered results from another graphics processing unit in the plurality.

6. The method of claim 1 , wherein the causing to be graphically at least partly rendered step is performed without copying the set of results in a memory of the respective graphics processing unit in the plurality.

7. The method of claim 1 , wherein causing to be graphically at least partly rendered the set of results comprises selecting one of a plurality of shader programs.

8. The method of claim 7 , wherein causing to be graphically at least partly rendered the set of results additionally comprises providing a set of parameters to the shader program selected based on at least one of a plurality of parameters corresponding to the request.

9. A computer program product comprising a non-transitory computer useable medium having computer readable program code embodied therein for displaying results of a request, the computer program product comprising computer readable program code devices configured to cause a computer system to:

receive the request comprising at least one query to be performed using at least one data set;

allocate different portions of each of the at least one data set to different ones of a plurality of graphics processing units;

perform the at least one query at each of the graphics processing units in the plurality using the different portions of the at least one data set allocated to such graphics processing unit to produce a set of results;

at each of the plurality of graphics processing units, cause to be graphically at least partly rendered, the set of results of the query performed using the portions of the at least one data set allocated to said graphics processing unit;

combine the at least partly rendered set of results from each of the plurality of graphics processing units; and

provide for display rendered results responsive to the combined at least partly rendered set of results.

10. The computer program product of claim 9 , wherein the portions of the at least one data set allocated were divided into such portions before the request was received.

11. The computer program product of claim 9 , additionally comprising computer readable program code devices configured to cause the computer system to complete a graphical rendering of the rendered results by a single one of the plurality of graphics processing units based on a size of a memory of the single one of the plurality of graphics processing units being not smaller than a size of a memory of each of others of the plurality of graphics processing units.

12. The computer program product of claim 11 , wherein the computer readable program code devices configured to cause the computer system to complete the graphical rendering cause it to be at least partly performed at each of the plurality of graphics processing units, responsive to the graphically at least partly rendered set of results from another of the plurality of graphics processing units based on at least one of a plurality of parameters for the request.

13. The computer program product of claim 9 , wherein a sequence in which the combining step is performed is based on at least one of a plurality of parameters for the request indicating the at least partly rendered results from one graphics processing unit in the plurality has a potential to overlap the at least partly rendered results from another graphics processing unit in the plurality.

14. The computer program product of claim 9 , wherein the computer readable program code devices configured to cause the computer system to cause to be graphically at least partly rendered, cause such function to be performed without copying the set of results in a memory of the respective graphics processing unit in the plurality.

15. The computer program product of claim 9 , wherein the computer readable program code devices configured to cause the computer system to cause to be graphically at least partly rendered the set of results comprise computer readable program code devices configured to cause the computer system to select one of a plurality of shader programs.

16. The computer program product of claim 15 , wherein the computer readable program code devices configured to cause the computer system to cause to be graphically at least partly rendered the set of results additionally comprises computer readable program code devices configured to cause the computer system to provide a set of parameters to the shader program selected based on at least one of a plurality of parameters corresponding to the request.

Assignments (3)
CHANGE OF NAME Recorded Jun 24, 2025
From: MAPD TECHNOLOGIES, INC.
To: OMNISCI, INC.
Reel/Frame 071723/0247 →
CHANGE OF NAME Recorded Jun 24, 2025
From: OMNISCI, INC.
To: HEAVY.AI, INC.
Reel/Frame 071724/0072 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2024
From: MOSTAK, TODD, MR.; ROOT, CHRISTOPHER, MR.
To: MAPD TECHNOLOGIES, INC.
Reel/Frame 068461/0904 →
Continuity (3)
Continuation 16209846 · Dec 4, 2018
Continuation 15409470 · Jan 18, 2017
Provisional Application 62280098 · Jan 18, 2016