IP Library › Granted Patent US 11,580,191
Granted Patent B1
US 11,580,191 · App. 15/963,234 · Granted Feb 14, 2023

Method and system for convolution

Inventors: Albert T. Gural (Clifton, VA); Michael Wu (Palo Alto, CA); Christopher H. Dick (San Jose, CA)
Assignee: XILINX, INC.
G06F17/15G06F17/16G06N3/063
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,580,191
App. No.
15/963,234
Granted
Feb 14, 2023
Kind
B1
Abstract

Method and system relating generally to convolution is disclosed. In such a method, an image patch is selected from input data for a first channel of a plurality of input channels of an input layer. The selected image patch is transformed to obtain a transformed image patch. The transformed image patch is stored. Stored is a plurality of predetermined transformed filter kernels. A stored transformed filter kernel of the plurality of stored predetermined transformed filter kernels is element-wise multiplied by multipliers with the stored transformed image patch for a second channel of the plurality of input channels different from the first channel to obtain a product. The product is inverse transformed to obtain a filtered patch for the image patch.

Claims (54)

1. A method, comprising:

selecting an image patch from input data for a first channel of a plurality of input channels of an input layer;

transforming the selected image patch in convolutional transform circuitry to obtain a transformed image patch;

storing the transformed image patch in memory;

storing a plurality of predetermined transformed filter kernels in the memory;

element-wise multiplying, in an element-wise multiply accumulator configured to element-wise multiply, a stored transformed filter kernel of the plurality of stored predetermined transformed filter kernels with the stored transformed image patch for a second channel of the plurality of input channels different from the first channel to obtain a product; and

inverse transforming the product, with inverse convolution transform circuitry, to obtain a filtered patch for the selected image patch.

2. The method according to claim 1 , wherein:

the transforming is a Winograd transforming; and

the plurality of predetermined transformed filter kernels are for the plurality of input channels for each of a plurality of output channels each in a Winograd basis.

3. The method according to claim 2 , wherein the element-wise multiplying is for each of the plurality of stored predetermined transformed filter kernels with the stored transformed image patch to obtain corresponding products.

4. The method according to claim 3 , further comprising:

summing the products to obtain a sum patch; and

inverse transforming the sum patch to obtain the filtered patch for the image patch.

5. The method according to claim 4 , wherein the products are Hadamard products.

6. The method according to claim 2 , further comprising generating Winograd transform matrices for the Winograd transforming.

7. The method according to claim 6 , wherein the generating comprises:

determining an upper bound, p, for numerical stability, where p is a product of condition numbers k A , k G , and k B respectively of matrices A, G, and B for the Winograd transform matrices; and

minimizing the upper bound by:

optimizing the matrices A, G, and B; and

scaling the optimized matrices A, G, and B.

8. The method according to claim 7 , wherein:

the matrix G transforms a filter kernel of the plurality of predetermined transformed filter kernels;

a transpose matrix B T of the matrix B transforms the selected image patch to obtain the transformed image patch; and

a transpose matrix A T of the matrix A inverse transforms the product to obtain the filtered patch.

9. The method according to claim 8 , wherein the optimizing comprises obtaining polynomial points to generate the Winograd transform matrices.

10. The method according to claim 9 , wherein the scaling comprises reducing a value of a condition number of the optimized matrices A, G, and B while maintaining mathematical equivalency with the optimized matrices A, G, and B prior to the scaling.

11. The method according to claim 10 , wherein the scaling comprises:

generating candidates for the transform matrices A, G, B T ; and

finding an associated condition number for the transform matrices A, G, B T .

12. A system for convolution, comprising:

a memory system configured to read out a first transformed filter kernel, a second transformed filter kernel, and image data;

convolutional transform circuitry configured to receive the image data to provide transformed image data;

an element-wise multiply accumulator configured to element-wise multiply:

the first transformed filter kernel and the transformed image data to obtain a first product; and

the second transformed filter kernel and the transformed image data to obtain a second product;

the element-wise multiply accumulator configured to add the first product and the second product to obtain an accumulated sum; and

inverse convolution transform circuitry configured to inverse transform the accumulated sum to provide filtered output data for the image data.

13. The system according to claim 12 , wherein the memory system is further configured to write the filtered output data to memory of the memory system.

14. The system according to claim 13 , wherein the memory system comprises:

a first controller configured to read out the first transformed filter kernel and the second transformed filter kernel from a first memory space corresponding to the first controller;

a second controller configured to read out the image data from a second memory space and to write in the transformed image data to the second memory space; and

a third controller configured to write the filtered output data to a third memory space.

15. The system according to claim 12 , wherein the element-wise multiply accumulator is an array of digital signal processing circuits including corresponding multipliers.

16. The system according to claim 12 , wherein the first transformed filter kernel and the second transformed filter kernel correspond to a first input channel and a second input channel.

17. The system according to claim 12 , wherein:

the first product and the second product are respective Hadamard products; and

the filtered output data is a filtered patch for the image data being a selected patch of an image.

18. The system according to claim 12 , wherein:

the convolutional transform circuitry is configured with Winograd transform matrices for an m×n output matrix and a r×s filter matrix to provide an F(m×n, r×s) convolution function for m, n, r, and s integers;

each of the Winograd transform matrices having a numerical stability of 1000 or less; and

the F(m×n, r×s) convolution function selected from F(5×5, 3×3), F(6×6, 3×3), F(7×7, 3×3), F(2×2, 5×5), F(3×3, 5×5), F(4×4, 5×5), F(5×5, 5×5), F(2×2, 7×7), or F(3×3, 7×7).

19. The system according to claim 18 , wherein the Winograd transform matrices are of an inception-residual network model.

20. The system according to claim 19 , wherein the Winograd transform matrices are for a finite impulse response filter as a function of the m×n output matrix and the r×s filter matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2018
From: GURAL, ALBERT T.; WU, MICHAEL; DICK, CHRISTOPHER H.
To: XILINX, INC.
Reel/Frame 045649/0723 →
Cited By (3)
US 12,554,467 US 12,645,750 US 12,664,414