# US 11,307,863 B1 · Graphics processing unit systems for performing data analytics operations in data science

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,863 B1
- Document ID: US11307863B1
- Status: Granted
- Kind: B1
- Application number: 16/596,755
- Filed: 2019-10-08
- Granted: 2022-04-19
- Earliest claimed: 2018-10-08
- Assignees: NVIDIA Corporation
- Applicants: NVIDIA Corporation
- Inventors: Joshua Patterson; Leeann Chau Tuyet Dang; Keith Jason Kraus; Allan Rabbitt Enemark; Frank Joseph Eaton; Bradley Stuart Rees; Michael Evan Wendt; Mark Jason Harris
- Web page: https://patentgrep.com/patent/US11307863B1

## CPC

- G06F 9/3881: {Arrangements for communication of instructions and data}
- G06F 9/30043: {LOAD or STORE instructions; Clear instruction}
- G06F 9/3822: {Parallel decoding, e.g. parallel decode units}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 13/1663: {Access to shared memory}
- G06N 3/02: Neural networks
- G06N 3/063: using electronic means
- G06N 3/08: Learning methods
- G06N 3/09: Supervised learning
- G06N 20/00: Machine learning
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06F 2009/3883: {Two-engine architectures, i.e. stand-alone processor acting as a secondary processor}
- G06F 2209/509: Offload
- G06N 3/048: Activation functions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Systems and methods are provided for efficiently performing processing intensive operations, such as those involving large volumes of data, that enable accelerated processing time of these operations. In at least one embodiment, a system includes a graphics processor unit (GPU) including a memory and a plurality of cores. The plurality of cores perform a plurality of data analytics operations on a respectively allocated portion of a dataset, each of the plurality of cores using only the memory to store data input for each of the plurality of data analytics operations performed by the plurality of cores. The data storage for the plurality of data analytics operations performed by the plurality of cores is also provided solely by the memory.

## Claims

### Claim 1

A parallel processing system comprising:
a graphics processing unit (GPU) comprising:
GPU memory; and
a plurality of cores to execute a plurality of logic units, the plurality of logic units including:
a data wrangling unit to:
extract data from one or more sources; and
store the data in the GPU memory after the extraction;
a machine learning unit to:
retrieve the data from the GPU memory;
apply the data to one or more machine learning models; and
store outputs of the one or more machine learning models as output data in the GPU memory, the outputs computed using the machine learning models and based at least in part on the data stored in the GPU memory using the data wrangling unit;
an analysis unit to:
retrieve the output data from the GPU memory;
analyze the output data;
train the one or more machine learning models based at least in part on the analysis of the output data to generate one or more trained machine learning models; and
store model data representative of the one or more trained machine learning models in the GPU memory; and
an inference unit to use the model data stored in the GPU memory to deploy at least one trained machine learning model of the one or more trained machine learning models for processing of real-time data.

### Claim 2 (depends on 1)

The system of claim 1, wherein the GPU further comprises bidirectional communication channels between the plurality of cores.

### Claim 3 (depends on 1)

The system of claim 1, wherein the GPU further comprises bidirectional communication channels between each of the plurality of cores and the GPU memory.

### Claim 4 (depends on 1)

The system of claim 1, wherein the data wrangling unit is further to transform at least a subset of the data to generate transformed data, wherein the data stored in the GPU memory after the extraction includes the transformed data.

### Claim 5 (depends on 1)

The system of claim 1, wherein the data wrangling unit, the machine learning unit, the analysis unit, and the inference unit share data using the GPU memory.

### Claim 6 (depends on 1)

The system of claim 1, further comprising another GPU comprising another GPU memory, wherein a portion of at least one of the data, the output data, or the model data is stored in the another GPU memory, and at least one of the data wrangling unit, the machine learning unit, the analysis unit, or the inference unit is communicatively coupled to the another GPU memory via an intra-node channel.

### Claim 7 (depends on 1)

The system of claim 1, wherein two or more operations of the data wrangling unit, the machine learning unit, the analysis unit, or the inference unit are executed in parallel.

### Claim 8 (depends on 1)

The system of claim 1, wherein the one or more machine learning models include at least one of linear models, support vector machines, stochastic gradient descent, naive Bayes classification, decision trees, clustering, or deep learning neural networks.

### Claim 9 (depends on 1)

The system of claim 1, wherein the analysis unit is further to generate a visualization using the output data.

### Claim 10 (depends on 1)

The system of claim 1, wherein the data wrangling unit, the machine learning unit, the analysis unit, and the inference unit are implemented in series.

### Claim 11

A method comprising:
storing data extracted from one or more sources in a graphics processing unit (GPU) memory of a GPU;
processing the data stored in the GPU memory using one or more machine learning models to generate output data representative of one or more outputs;
storing the output data in the GPU memory;
analyzing the output data from the GPU memory to train the one or more machine learning models;
generating, based at least in part on the training, one or more trained machine learning models;
storing model data representative of the one or more trained machine learning models in the GPU memory; and
deploying the one or more trained machine learning models using the model data stored in the GPU memory to process real-time data.

### Claim 12 (depends on 11)

The method of claim 11, wherein the GPU includes bidirectional communication channels between a plurality of cores of the GPU, and one or more of the processing, the analyzing, the generating, or the storing are performed at least partially in parallel using the plurality of cores of the GPU.

### Claim 13 (depends on 11)

The method of claim 11, further comprising transforming at least a subset of the data extracted from the one or more sources to generate transformed data, wherein the storing the data further includes storing the transformed data.

### Claim 14 (depends on 11)

The method of claim 11, wherein two or more of the processing, the analyzing, the generating, and the storing are performed in parallel.

### Claim 15 (depends on 11)

The method of claim 11, wherein another GPU including another GPU memory stores at least a portion of the data, the output data, or the model data, at least the portion of the data, the output data, or the model data is accessed via an intra-node channel between the GPU and the another GPU.

### Claim 16 (depends on 11)

The method of claim 11, wherein the one or more machine learning models include at least one of linear models, support vector machines, stochastic gradient descent, naive Bayes classification, decision trees, clustering, or deep learning neural networks.

### Claim 17 (depends on 11)

The method of claim 11, further comprising generating a visualization of the output data using the output data stored in the GPU memory.

### Claim 18 (depends on 11)

The method of claim 11, wherein the visualization is generated based at least in part on classifying data points represented by the output data.

### Claim 19 (depends on 11)

The method of claim 11, further comprising identifying a machine learning model among the one or more machine learning models based at least in part on the analyzing.

### Claim 20 (depends on 19)

The method of claim 19, further comprising using the machine learning model among the one or more machine learning models in the deploying.

### Claim 21

A graphics processing unit (GPU) comprising:
GPU memory; and
a plurality of cores to execute a plurality of logic units, the plurality of logic units including:
a data wrangling unit to:
extract data from one or more sources; and
store the data in the GPU memory after the extraction;
a machine learning unit to:
retrieve the data from the GPU memory;
apply the data to one or more machine learning models; and
store outputs of the one or more machine learning models as output data in the GPU memory, the outputs computed using the machine learning models and based at least in part on the data stored in the GPU memory using the data wrangling unit;
an analysis unit to:
retrieve the output data from the GPU memory;
analyze the output data;
train the one or more machine learning models based at least in part on the analysis of the output data to generate one or more trained machine learning models; and
store model data representative of the one or more trained machine learning models in the GPU memory; and
an inference unit to use the model data stored in the GPU memory to deploy at least one trained machine learning model of the one or more trained machine learning models for processing of real-time data.

### Claim 22 (depends on 21)

The GPU of claim 21, wherein the data wrangling unit is further to transform at least a subset of the data to generate transformed data, wherein the data stored in the GPU memory after the extraction includes the transformed data.

### Claim 23 (depends on 21)

The GPU of claim 21, wherein the data wrangling unit, the machine learning unit, the analysis unit, and the inference unit share data using the GPU memory.

### Claim 24 (depends on 21)

The GPU of claim 21, wherein the GPU is coupled to another GPU comprising another GPU memory, wherein a portion of at least one of the data, the output data, or the model data is stored in the another GPU memory, and at least one of the data wrangling unit, the machine learning unit, the analysis unit, or the inference unit is communicatively coupled to the another GPU memory via an intra-node channel.

### Claim 25 (depends on 21)

The GPU of claim 21, wherein the data wrangling unit, the machine learning unit, the analysis unit, and the inference unit are implemented in series.
