IP Library Granted Patent US 11,625,578
Granted Patent B2
US 11,625,578 · App. 16/834,881 · Granted Apr 11, 2023

Neural network processing

Inventors: Sharjeel Saeed (Cambridge, GB); Aaron DeBattista (Cambridge, GB); Daren Croxford (Cambridge, GB)
Assignee: ARM Limited
G06N3/0472G06K9/6261G06N3/08
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,625,578
App. No.
16/834,881
Granted
Apr 11, 2023
Kind
B2
Abstract

A method apparatus and computer readable medium for processing input data using a neural network comprising at least a first layer and a second layer. The method comprising the steps of applying a partitioning scheme to the input data, to partition the input data into a plurality of blocks, each block representing a portion of the input data. At the first layer of the neural network, the blocks of the input data are processed in a first order to generate intermediary data, wherein the intermediary data is partitioned into a plurality of intermediary blocks. At the second layer of the neural network, the intermediary blocks are processed in a second order, wherein the second order differs from the first order.

Claims (28)

1. A method for processing input data using a neural network comprising at least a first layer and a second layer, the method comprising the steps of:

applying a partitioning scheme to the input data, to partition the input data into a plurality of blocks, each block representing a portion of the input data;

processing, at the first layer of the neural network, the blocks of the input data in a first order to generate intermediary data, wherein the intermediary data is partitioned into a plurality of intermediary blocks by applying an intermediary partitioning scheme to the intermediary data, such that the intermediary data is partitioned into a plurality of intermediary blocks in accordance with the intermediary partitioning scheme, and wherein the intermediary partitioning scheme is based on an optimal intermediary block size; and

processing, at the second layer of the neural network, the intermediary blocks in a second order, wherein the second order is the inverse of the first order.

2. The method of claim 1 , wherein at least a last block written to a memory in the first order is equivalent to at least a first block read from memory in the second order.

3. The method of claim 1 , wherein processing at the first layer comprises writing each of the plurality of intermediary blocks to at least a first memory or a second memory.

4. The method of claim 3 , wherein the intermediary blocks written to the second memory correspond to blocks processed last in accordance with first order.

5. The method of claim 3 , wherein the first memory is external storage and the second memory is processor storage associated with a processor arranged to execute the method.

6. The method of claim 3 , wherein the partitioning scheme determines an optimal block size based on the size of the second storage.

7. The method of claim 6 , wherein applying the partitioning scheme to the input data comprises adjusting a size associated with each of the plurality of blocks based on the optimal block size.

8. The method of claim 1 , wherein characteristics of the plurality of intermediary blocks correspond to characteristics of the plurality of blocks of the input data.

9. The method of claim 1 , wherein the neural network is a convolutional neural network, and the input data is input feature map data or at least one input probability.

10. The method of claim 1 , wherein processing, at the second layer comprises generating output data, wherein the output data is at least one of an output feature map, or at least one output probability.

11. The method of claim 1 , wherein the first layer comprises a first fused set of layers, or the second layer comprises a second fused set of layers.

12. An apparatus for processing input data using a neural network comprising at least a first layer and a second layer, the apparatus comprising:

at least one processor for implementing at least the neural network on input data; and

processor storage accessible by the at least one processor,

wherein the apparatus is configured to:

apply a partitioning scheme to the input data, such that the input data is partitioned into a plurality of blocks, each block representing a portion of input data;

process, at the first layer of the neural network, the blocks of the input data in a first order to generate intermediary data, wherein the intermediary data is partitioned into a plurality of intermediary blocks by applying an intermediary partitioning scheme to the intermediary data, such that the intermediary data is partitioned into a plurality of intermediary blocks in accordance with the intermediary partitioning scheme, and wherein the intermediary partitioning scheme is based on an optimal intermediary block size, wherein at least one of the intermediary blocks is stored within the processor storage; and

process, at a second layer of the neural network, the intermediary blocks in a second order, wherein the second order is the inverse of the first order.

13. The apparatus of claim 12 , further comprising external storage for storing at least one of the intermediary blocks.

14. The apparatus of claim 13 , wherein the processor storage is local to the processor, and the external storage is remote from the processor.

15. The apparatus of claim 12 , wherein at least a last block written to a memory in the first order is equivalent to at least a first block read from memory in the second order.

16. A non-transitory computer-readable storage medium comprising a set of computer-readable instructions stored thereon, which when executed by at least one processor, cause the at least one processor to:

apply a partitioning scheme to the input data, to partition the input data into a plurality of blocks, each block representing a portion of the input data;

process, at the first layer of the neural network, the blocks of the input data in a first order to generate intermediary data, wherein the intermediary data is partitioned into a plurality of intermediary blocks by applying an intermediary partitioning scheme to the intermediary data, such that the intermediary data is partitioned into a plurality of intermediary blocks in accordance with the intermediary partitioning scheme, and wherein the intermediary partitioning scheme is based on an optimal intermediary block size; and

process, at the second layer of the neural network, the intermediary blocks in a second order, wherein the second order is the inverse of the first order.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: APICAL LIMITED
To: ARM LIMITED
Reel/Frame 060620/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2020
From: SAEED, SHARJEEL; CROXFORD, DAREN
To: ARM LIMITED
Reel/Frame 052665/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2020
From: DEBATTISTA, AARON
To: APICAL LIMITED
Reel/Frame 052665/0889 →
Continuity (1)
Related Publication 20210303974A1 · Sep 30, 2021