# US 2014/0192066 A1 · Parallel processor with integrated correlation and convolution engine

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

- Number: US 2014/0192066 A1
- Document ID: US20140192066A1
- Status: Published application
- Kind: A1
- Application number: 13/736,863
- Filed: 2013-01-08
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: NVIDIA Corporation
- Applicants: Nvidia Corporation
- Inventors: Guillermo Savransky; Joseph Stam
- Web page: https://patentgrep.com/patent/US20140192066A1

## CPC

- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06F 17/153: {Multidimensional correlation or convolution}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method for performing computer algorithms. The system includes a graphics pipeline operable to perform graphics processing and an engine operable to perform at least one of a correlation determination and a convolution determination for the graphics pipeline. The graphics pipeline is further operable to execute general computing tasks. The engine comprises a plurality of functional units operable to be configured to perform at least one of the correlation determination and the convolution determination. In one embodiment, the engine is coupled to the graphics pipeline. The system further includes a configuration module operable to configure the engine to perform at least one of the correlation determination and the convolution determination.

## Claims

### Claim 1

A system for performing computer processes, said system comprising:
a graphics pipeline operable to perform graphics processing, wherein said graphics pipeline is further operable to execute general computing tasks;
an engine operable to perform at least one of a correlation determination and a convolution determination for said graphics pipeline, wherein said engine comprises a plurality of functional units configurable to perform at least one of said correlation determination and said convolution determination, and wherein said engine is coupled to said graphics pipeline; and
a configuration module operable to configure said engine to perform at least one of said correlation determination and said convolution determination.

### Claim 2 (depends on 1)

The system as described in claim 1 wherein each of said execution units is operable to perform one of a plurality of functions, wherein said one of said plurality of functions is selectable by said configuration module.

### Claim 3 (depends on 1)

The system as described in claim 1 wherein said configuration module is operable to determine whether to configure said plurality of functional units for at least one of said correlation determination and said convolution determination based on an instruction received from said graphics pipeline.

### Claim 4 (depends on 1)

The system as described in claim 1 wherein a computation is sent to said engine based an application programming interface (API) call.

### Claim 5 (depends on 1)

The system as described in claim 1 wherein said engine is operable to perform at least one of said correlation determination and said convolution determination in at least one of less time and less energy than said graphics pipeline.

### Claim 6 (depends on 1)

The system as described in claim 1 wherein said graphics pipeline is operable to pre-compute a portion of at least one of said correlation determination and said convolution determination.

### Claim 7 (depends on 1)

The system as described in claim 1 wherein said wherein said graphics pipeline is operable to post-compute a portion of at least one of said correlation determination and said convolution determination.

### Claim 8

A method of accelerating computer computations, said method comprising:
receiving a request to perform at least one of a correlation computation and a convolution computation;
determining a configuration of a plurality of execution units, wherein said configuration corresponds to at least one of said correlation computation and said convolution computation;
performing at least one of said correlation computation and said convolution computation based on said configuration to generate a result; and
sending said result of at least one of said correlation computation and said convolution computation to a processing unit of a graphics processing unit (GPU).

### Claim 9 (depends on 8)

The method as described in claim 8 further comprising:
precomputing a portion of at least one of said correlation computation and said convolution computation.

### Claim 10 (depends on 8)

The method as described in claim 8 further comprising:
postcomputing a portion of at least one of said correlation computation and said convolution computation.

### Claim 11 (depends on 8)

The method as described in claim 8 wherein each of said execution units is operable to perform one of a plurality of functions, wherein said one of said plurality of functions is selectable by a configuration module.

### Claim 12 (depends on 8)

The method as described in claim 8 wherein said request is received from a graphics pipeline of said GPU.

### Claim 13 (depends on 12)

The method as described in claim 12 wherein said performing at least one of said correlation computation and said convolution computation is performed by an engine coupled to said graphics pipeline.

### Claim 14 (depends on 8)

The method as described in claim 8 wherein said request is received via an application programming interface (API).

### Claim 15

A programmable processor comprising:
a plurality of programmable processing elements operable to perform graphics processing; and
a plurality of engines each coupled to a respective programmable processing element of said plurality of programmable processing elements, wherein said engine is operable to perform at least one of a correlation computation and a convolution computation, and wherein each engine of said plurality of engines comprises a plurality of execution units and a configuration module operable to configure said plurality of execution units to perform at least one of said correlation computation and said convolution computation.

### Claim 16 (depends on 15)

The programmable processor as described in claim 15 wherein said plurality of programmable processing elements is operable to perform general computing tasks.

### Claim 17 (depends on 15)

The programmable processor as described in claim 15 wherein each of said execution units of said engine is operable to perform one of a plurality of functions, wherein said one of said plurality of functions is operable to be configured by said configuration module.

### Claim 18 (depends on 15)

The programmable processor as described in claim 15 wherein a computation request is sent to said engine based an application programming interface (API).

### Claim 19 (depends on 15)

The programmable processor as described in claim 15 wherein each of said programmable processing elements is operable to precompute a portion of at least one of said correlation computation and said convolution computation.

### Claim 20 (depends on 15)

The programmable processor as described in claim 15 wherein each of said programmable processing elements is operable to postcompute a portion of at least one of said correlation computation and said convolution computation.
