IP Library › Granted Patent US 12,026,396
Granted Patent B2
US 12,026,396 · App. 17/898,262 · Granted Jul 2, 2024

Word based channels last ordering in memory

Inventor: Patrick Worfolk (San Jose, CA)
Assignee: Synaptics Incorporated
G06F3/0655G06F3/0604G06F3/0673
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 12,026,396
App. No.
17/898,262
Granted
Jul 2, 2024
Kind
B2
Abstract

A memory device includes a first word and a second word. The first word has a first subset of a plurality of elements. The first subset of the plurality of elements each have a first set of sequential index values along a first dimension of a tensor, a first single index value for a second dimension of the tensor, and a second single index value for a third dimension of the tensor. The second word has a second subset of the plurality of elements. The second subset of the plurality of elements each have the first set of sequential index values along the first dimension of the tensor that is the same as the first word, the first single index value for the second dimension of the tensor that is the same as the first word, and a third single index value for the third dimension of the tensor that is different than the second single index value for the first word. The second word is adjacent to the first word in memory.

Claims (69)

1. A computing device comprising:

a memory; and

a processor configured to perform a first plurality of memory accesses from storage in the memory for:

a first word having a first subset of a plurality of elements, the first subset of the plurality of elements each having:

a first set of sequential index values along a first dimension of a tensor,

a first single index value for a second dimension of the tensor, and

a second single index value for a third dimension of the tensor, and

a second word having a second subset of the plurality of elements, the second subset of the plurality of elements each having:

the first set of sequential index values along the first dimension of the tensor that is the same as the first word,

the first single index value for the second dimension of the tensor that is the same as the first word, and

a third single index value for the third dimension of the tensor that is different than the second single index value for the first word,

wherein the second word is adjacent to the first word in the memory.

2. The computing device of claim 1 , wherein the third dimension is a channel dimension.

3. The computing device of claim 1 , wherein the processor is further configured to perform a plurality of memory accesses of a plurality of groups of words, wherein each group of the plurality of groups are stored in a contiguous section of memory.

4. The computing device of claim 3 , wherein each group of the plurality of groups comprises a plurality of words, the plurality of words each having a same set of index values for the first dimension and for the second dimension as each other word in the group and a different index value for the third dimension as each other word in the group.

5. The computing device of claim 4 , wherein each group has a same number of words as a number of index values along the third dimension.

6. The computing device of claim 1 , wherein the processor is further configured to execute a convolutional neural network model to perform a depth-wise convolution operation using the first word with a first filter and the second word with a second filter.

7. The computing device of claim 1 , wherein the processor is further configured to execute a convolutional neural network model to perform a pointwise convolution stage using the first word and the second word with a filter.

8. The computing device of claim 1 , wherein the first dimension and second dimension are spatial dimensions, and the third dimension is a channel dimension.

9. The computing device of claim 1 , wherein the processor is further configured to perform the first plurality of memory accesses from the storage in the memory for:

a third word having a third subset of a plurality of elements, the third subset of the plurality of elements each having:

a second set of index values for the first dimension of the tensor,

a third set of index values for the second dimension of the tensor, and

a fourth single index value for the third dimension of the tensor, and

a fourth word having a fourth subset of the plurality of elements, the fourth subset of the plurality of elements each having:

the second set of index values for the first dimension of the tensor that is the same as the third word,

the third set of index values for the second dimension of the tensor that is the same as the third word, and

a fifth single index value for the third dimension of the tensor that is different than the third single index value for the third word,

wherein the third word is adjacent to the second word in memory.

10. The computing device of claim 1 , wherein the computing device is an edge device.

11. A memory device comprising:

a first word having a first subset of a plurality of elements, the first subset of the plurality of elements each having:

a first set of sequential index values along a first dimension of a tensor,

a first single index value for a second dimension of the tensor, and

a second single index value for a third dimension of the tensor, and

a second word having a second subset of the plurality of elements, the second subset of the plurality of elements each having:

the first set of sequential index values along the first dimension of the tensor that is the same as the first word,

the first single index value for the second dimension of the tensor that is the same as the first word, and

a third single index value for the third dimension of the tensor that is different than the second single index value for the first word,

wherein the second word is adjacent to the first word in memory.

12. The memory device of claim 11 , wherein the third dimension is a channel dimension.

13. The memory device of claim 11 , further comprising a plurality of groups of words, wherein each group of the plurality of groups are stored in a contiguous section of the memory.

14. The memory device of claim 13 , wherein each group of the plurality of groups comprises a plurality of words, the plurality of words each having a same set of index values for the first dimension and for the second dimension as each other word in the group and a different index value for the third dimension as each other word in the group.

15. The memory device of claim 14 , wherein each group has a same number of words as a number of index values along the third dimension.

16. The memory device of claim 11 , wherein the first dimension is a row dimension, the second dimension is a column dimension, and the third dimension is a channel dimension.

17. The memory device of claim 11 , further comprising:

a third word having a third subset of a plurality of elements, the third subset of the plurality of elements each having:

a second set of index values for the first dimension of the tensor,

a third set of index values for the second dimension of the tensor, and

a fourth single index value for the third dimension of the tensor, and

a fourth word having a fourth subset of the plurality of elements, the fourth subset of the plurality of elements each having:

the second set of index values for the first dimension of the tensor that is the same as the third word,

the third set of index values for the second dimension of the tensor that is the same as the third word, and

a fifth single index value for the third dimension of the tensor that is different than the third single index value for the third word,

wherein the third word is adjacent to the second word in the memory.

18. A method comprising:

performing a plurality of memory accesses from storage in memory for a plurality of groups of words, wherein the plurality of groups comprises:

a first word having a first subset of a plurality of elements, the first subset of the plurality of elements each having:

a first set of sequential index values along a first dimension of a tensor,

a first single index value for a second dimension of the tensor, and

a second single index value for a third dimension of the tensor, and

a second word having a second subset of the plurality of elements, the second subset of the plurality of elements each having:

the first set of sequential index values along the first dimension of the tensor that is the same as the first word,

a third single index value for the third dimension of the tensor that is different than the second single index value for the first word,

wherein the second word is adjacent to the first word in the memory; and

executing a layer of a neural network model using the plurality of memory accesses.

19. The method of claim 18 , wherein each group has a same number of words as a number of index values along the third dimension.

20. The method of claim 19 , further comprising:

executing a depth-wise convolution operation and a point-wise convolution operation on the plurality of words.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2022
From: WORFOLK, PATRICK
To: SYNAPTICS INCORPORATED
Reel/Frame 061600/0697 →
Continuity (2)
Provisional Application 63240770 · Sep 3, 2021
Related Publication 20230070730A1 · Mar 9, 2023