Neural network processing
AssigneeArm Limited
InventorsJohn Wakefield Brothers, III, Rune Holm, Elliott Maurice Simon Rosemarine
Life of this patent
Estimating the term…
Abstract
To perform neural network processing to modify an input data array to generate a corresponding output data array using a filter comprising an array of weight data, at least one of the input data array and the filter are subdivided into a plurality of portions, a plurality of neural network processing passes using the portions are performed, and the output generated by each processing pass is combined to provide the output data array.
Claims22
A method of operating a data processing system, the data processing system comprising a processor operable to execute neural network processing, the method comprising:
- for neural network processing to be performed by the processor to modify an input data array to generate a corresponding output data array using a filter comprising an array of weight data:
- subdividing at least one of the input data array and the filter into a plurality of portions, to provide at least one of a plurality of input data array portions and a plurality of filter portions;
- performing a plurality of neural network processing passes by the processor in which input data of the input data array is modified using weight data of the filter to generate output data for the output data array, each processing pass using, in the case where the input data array was subdivided into a plurality of input data array portions, a different input data array portion of the input data array, and, in the case where at the filter was subdivided into a plurality of filter portions, a different filter portion;
- and
- combining the output data generated by each of the processing passes, to provide the output data array.
A method of operating a processor operable to perform neural network processing in which an input data array is modified using a filter comprising an array of weight data in order to generate an output data array, the method comprising the processor:
- performing a plurality of neural network processing passes in which input data of an input data array is modified using weight data of a filter to generate output data for an output data array, wherein at least one of the input data array and filter is subdivided into a plurality of portions, and each processing pass uses, in the case where the input data is subdivided into a plurality of input data array portions, a different input data array portion of the input data array, and, in the case where the filter is subdivided into a plurality of filter portions, a different filter portion;
- and
- combining the output data generated by each of the processing passes to provide an output data array.
A data processing system for performing neural network processing in which an input data array is modified using a filter comprising an array of weight data in order to generate an output data array, the data processing system comprising:
- a processor operable to execute neural network processing;
- and
- memory operable to store data relating to the neural network processing being performed by the processor;
- the data processing system further comprising a processing circuit configured to:
- for neural network processing to be performed in which an input data array is to be modified using a filter comprising an array of weight data in order to generate an output data array:
- subdivide at least one of the input data array and the filter into a plurality of portions, to provide at least one of a plurality of input data array portions and a plurality of filter portions;
- cause the processor to perform a plurality of neural network processing passes in which input data of the input data array is modified using weight data of the filter to generate output data for the output data array, each processing pass using, in the case where at the input data array is subdivided into a plurality of input data array portions, a different input data array portion of the input data array, and, in the case where the filter is subdivided into a plurality of filter portions, a different filter portion;
- and
- cause the processor to combine the output data generated by each of the processing passes, to provide the output data array.
A method of compiling a neural network to be executed by a processor operable to perform neural network processing in which an input data array is modified using a filter comprising an array of weight data in order to generate an output data array, the method comprising:
- for neural network processing to be performed in which an input data array is to be modified using a filter comprising an array of weight data in order to generate an output data array:
- determining whether to subdivide at least one of the input data array and the filter into a plurality of portions, and in the case that it is determined to subdivide at least one of the input data array and the filter into a plurality of portions, generating a sequence of commands that when executed will cause the processor to:
- perform a plurality of neural network processing passes in which input data of the input data array is modified using weight data of the filter to generate output data for the output data array, each processing pass using, in the case where it was determined to subdivide the input data array into a plurality of input data array portions, a different input data array portion of the input data array, and, in the case where it was determined to subdivide the filter into a plurality of filter portions, a different filter portion;
- and
- combine the output data generated by each of the processing passes to provide the output data array.
A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of operating a data processing system, the data processing system comprising a processor operable to execute neural network processing, the method comprising:
- for neural network processing to be performed by the processor to modify an input data array to generate a corresponding output data array using a filter comprising an array of weight data:
- subdividing at least one of the input data array and the filter into a plurality of portions, to provide at least one of a plurality of input data array portions and a plurality of filter portions;
- performing a plurality of neural network processing passes by the processor in which input data of the input data array is modified using weight data of the filter to generate output data for the output data array, each processing pass using, in the case where the input data array was subdivided into a plurality of input data array portions, a different input data array portion of the input data array, and, in the case where at the filter was subdivided into a plurality of filter portions, a different filter portion;
- and
- combining the output data generated by each of the processing passes, to provide the output data array.
Dependencies are inferred from the claim text.