US20160162402A1

Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system

Claim Score by NHIP

Read claim 1, the broadest

Abstract

In one embodiment of the present invention, a convolution engine configures a parallel processing pipeline to perform multi-convolution operations. More specifically, the convolution engine configures the parallel processing pipeline to independently generate and process individual image tiles. In operation, for each image tile, the pipeline calculates source locations included in an input image batch based on one or more start addresses and one or more offsets. Subsequently, the pipeline copies data from the source locations to the image tile. The pipeline then performs matrix multiplication operations between the image tile and a filter tile to generate a contribution of the image tile to an output matrix. To optimize the amount of memory used, the pipeline creates each image tile in shared memory as needed. Further, to optimize the throughput of the matrix multiplication operations, the values of the offsets are precomputed by a convolution preprocessor.

US20160162402A1, drawing sheet 1
Sheet 1 of 10

Term

9.2 yearsto projected expiry

Projected expiry 4 December 2035, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 62, broad(NHIP)A computer-implemented method for performing a multi-convolution operation, the method comprising:selecting a first start address based on a first destination address included in a first image tile that is stored in a first memory;identifying a first offset based on the first destination address;computing a first source address included in an image batch that is stored in a second memory based on the first start address and the first offset;copying data from the first source address to the first destination address;and after copying the data, performing one or more matrix multiplication operations between the first image tile and a first filter tile.
  2. 10
    A non-transitory, computer-readable storage medium including instructions that, when executed by a processor, cause the processor to perform a multi-convolution operation, by performing the steps of:selecting a first start address based on a first destination address included in a first image tile that is stored in a first memory;identifying a first offset based on the first destination address;computing a first source address included in an image batch that is stored in a second memory based on the first start address and the first offset;copying data from the first source address to the first destination address;and after copying the data, performing one or more matrix multiplication operations between the first image tile and a first filter tile.
  3. 19
    A system configured to perform a multi-convolution operation, the system comprising:a first memory;a second memory;and a convolution engine coupled to both the first memory and the second memory, and configured to: identify a first offset included in an offset sequence based on a first destination address included in a first image tile that is stored in the first memory;compute a first source address included in an image batch that is stored in the second memory based on the first offset;copy data from the first source address to the first destination address;and after copying the data, perform one or more matrix multiplication operations between the first image tile and a first filter tile.