IP Library Granted Patent US 11,694,068
Granted Patent B2
US 11,694,068 · App. 17/811,412 · Granted Jul 4, 2023

Methods for processing horizontal stripes of data in an efficient convolutional engine

Inventor: Eugene M. Feinberg (San Jose, CA)
Assignee: Recogni Inc.
G06N3/063G06F5/01G06F17/15G06N3/04G06N5/046
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,694,068
App. No.
17/811,412
Granted
Jul 4, 2023
Kind
B2
Abstract

A convolutional engine is configured to process input data that is organized into horizontal stripes. The number of accumulators present in each convolver unit of the convolutional engine may equal a total number of rows of data in each of the horizontal stripes.

Claims (17)

1. A method for processing input data with a first input channel and a second input channel, the first input channel comprising a first horizontal stripe and a second horizontal stripe, the second input channel comprising a third horizontal stripe and a fourth horizontal stripe, the method comprising:

processing, by a convolutional engine comprising a plurality of convolver units, the first horizontal stripe, the processing of the first horizontal stripe comprising computing a first plurality of dot products based on the first horizontal stripe and providing the first plurality of dot products to accumulators of the convolver units, wherein a total number of rows of the first horizontal stripe equals a total number of accumulators present in each of the convolver units;

processing, by the convolutional engine, the third horizontal stripe, the processing of the third horizontal stripe comprising computing a second plurality of dot products based on the third horizontal stripe and summing the second plurality of dot products and the first plurality of dot products with the accumulators of the convolver units, wherein a total number of rows of the third horizontal stripe equals the total number of accumulators present in each of the convolver units;

processing, by the convolutional engine, the second horizontal stripe, the processing of the second horizontal stripe comprising computing a third plurality of dot products based on the second horizontal stripe and providing the third plurality of dot products to the accumulators of the convolver units, wherein a total number of rows of the second horizontal stripe equals the total number of accumulators present in each of the convolver units; and

processing, by the convolutional engine, the fourth horizontal stripe, the processing of the fourth horizontal stripe comprising computing a fourth plurality of dot products based on the fourth horizontal stripe and summing the third plurality of dot products and the fourth plurality of dot products with the accumulators of the convolver units, wherein a total number of rows of the fourth horizontal stripe equals the total number of accumulators present in each of the convolver units.

2. The method of claim 1 , further comprising loading a zero padding row into the convolutional engine, followed by loading the first horizontal stripe into the convolutional engine, wherein computing the first plurality of dot products is based on the first horizontal stripe and the zero padding row.

3. The method of claim 1 , further comprising loading the first horizontal stripe into the convolutional engine, followed by loading a data padding row into the convolutional engine, wherein computing the first plurality of dot products is based on the first horizontal stripe and the data padding row.

4. The method of claim 3 , wherein the data padding row is identical to a leading row of the second horizontal stripe.

5. The method of claim 1 , further comprising loading a zero padding row into the convolutional engine, followed by loading the third horizontal stripe into the convolutional engine, wherein computing the second plurality of dot products is based on the third horizontal stripe and the zero padding row.

6. The method of claim 1 , further comprising loading the third horizontal stripe into the convolutional engine, followed by loading a data padding row into the convolutional engine, wherein computing the second plurality of dot products is based on the third horizontal stripe and the data padding row.

7. The method of claim 6 , wherein the data padding row is identical to a leading row of the fourth horizontal stripe.

8. The method of claim 1 , further comprising loading a data padding row into the convolutional engine, followed by loading the second horizontal stripe into the convolutional engine, wherein computing the third plurality of dot products is based on the second horizontal stripe and the data padding row.

9. The method of claim 8 , wherein the data padding row is identical to a trailing row of the first horizontal stripe.

10. The method of claim 1 , further comprising loading the second horizontal stripe into the convolutional engine, followed by loading a zero padding row into the convolutional engine, wherein computing the third plurality of dot products is based on the second horizontal stripe and the zero padding row.

11. The method of claim 1 , further comprising loading a data padding row into the convolutional engine, followed by loading the fourth horizontal stripe into the convolutional engine, wherein computing the fourth plurality of dot products is based on the fourth horizontal stripe and the data padding row.

12. The method of claim 11 , wherein the data padding row is identical to a trailing row of the third horizontal stripe.

13. The method of claim 1 , further comprising loading the fourth horizontal stripe into the convolutional engine, followed by loading a zero padding row into the convolutional engine, wherein computing the fourth plurality of dot products is based on the fourth horizontal stripe and the zero padding row.

Assignments (2)
CHANGE OF NAME Recorded Sep 11, 2025
From: RECOGNI INC.
To: TENSORDYNE, INC.
Reel/Frame 072859/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: FEINBERG, EUGENE M.
To: RECOGNI INC.
Reel/Frame 060623/0902 →
Continuity (4)
Continuation 16273616 · Feb 12, 2019
Provisional Application 62694290 · Jul 5, 2018
Provisional Application 62642578 · Mar 13, 2018
Related Publication 20220351029A1 · Nov 3, 2022