IP Library Patent Application 17597066
Patent Application
App. No. 17/597,066

DATA PROCESSING METHOD AND DEVICE, STORAGE MEDIUM AND ELECTRONIC DEVICE

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 None
App. No.
17/597,066
Abstract

A data processing method and device, a storage medium and an electronic device are disclosed. The method includes: reading M*N feature map data of all input channels and weights of a preset number of output channels, here a value of M*N and a value of the preset number are respectively determined by preset Y*Y weights; inputting the read feature map data and the weights of the preset number of output channels into a multiply-add array of the preset number of output channels for a convolution calculation; here a mode of the convolution calculation includes: not performing the convolution calculation in a case that the feature map data or the weights of the output channels are zero, and selecting one from same values for the convolution calculation in a case that there are a plurality of feature map data with the same values; and outputting a result of the convolution calculation.

Claims (55)

1 - 10 . (canceled)

11 . A data processing method, comprising steps of:

reading M*N feature map data of all input channels and weights of a preset number of output channels, wherein a value of M*N and a value of the preset number are respectively determined by preset Y*Y weights, and M, N and Y are all positive integers;

inputting read feature map data and the weights of the preset number of output channels into a multiply-add array of the preset number of output channels for a convolution calculation, wherein a mode of the convolution calculation comprises:

not performing the convolution calculation in a case that the feature map data or the weights of the output channels are zero, and

selecting one from a plurality of same values to perform the convolution calculation in a case that there are a plurality of feature map data with the same values; and

outputting a result of the convolution calculation.

12 . The method according to claim 11 , wherein reading M*N feature map data of all the input channels and weights of the preset number of output channels comprises:

reading the M*N feature map data of all the input channels and saving them in a memory; and

reading the weights of the preset number of output channels and saving them in the memory.

13 . The method according to claim 11 , wherein inputting read feature map data and the weights of the preset number of output channels into the multiply-add array of the preset number of output channels for a convolution calculation comprises:

inputting, in a first cycle, M*1 feature map data of a first line of a first input channel and the weights of the preset number of output channels into a calculation array of the preset number of output channels, and using a first group of Z*1 multiply-add units to perform a multiply-add calculation and then obtaining Z calculation results, wherein Z is determined by the preset Y*Y weights;

inputting, in a second cycle, M*1 feature map data of a second line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using a second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after a multiply-add calculation of a Y-th cycle is completed once a reading operation is performed, M*N feature map data of the first input channel is replaced as a whole, wherein the reading operation is an operation of reading the M*N feature map data of all the input channels and the weights of the preset number of output channels;

inputting, in a Y+2 cycle, M*1 feature map data of a Y+2 line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using a Y+2 group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after a Y*Yth cycle of the reading operation is performed, all multiply-add calculations of Z data in the first line of the first input channel are completed;

inputting the M*N feature map data of the preset number of input channels into the calculation array sequentially, and for the feature map data of each of the input channels, performing the multiply-add calculation for the M*1 feature map data of each line sequentially, until after Y*Y* preset number of cycles once the reading operation is performed, all the multiply-add calculations of Z data in the first line are completed, and outputting a calculation result; and

reading the M*N feature map data of all the input channels sequentially, and repeating a same operation as completing all the multiply-add calculation of Z data in the first line, until the feature map data of all the input channels are calculated.

14 . The method according to claim 13 , wherein inputting, in the second cycle, the M*1 feature map data of a second line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using the second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after the multiply-add calculation of the Y-th cycle is completed once the reading operation is performed, the M*N feature map data of the first input channel is replaced as a whole, comprising:

inputting, in the second cycle, the M*1 feature map data of the second line of the first input channel and the weights of the preset number of output channels into the calculation array of the preset number of output channels, using the second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining an intermediate result of Z points of a next line, shifting the feature map data of the first line to a left side and making all multiply-add calculations in a same output point are implemented in a same multiply-add unit;

inputting, in a third cycle, M*1 feature map data of a third line, and performing the same operation as a previous last cycle, until after the multiply-add calculation of the Y-th cycle is completed once the reading operation is performed, in a Y+1th cycle, inputting M*1 feature map data of a Y+1th line, performing the same operation as the previous last cycle and replacing the M*N feature map data of the first input channel as a whole.

15 . A storage medium, storing a computer program configured to perform a data processing method when the computer program is running; wherein the method comprises steps of:

reading M*N feature map data of all input channels and weights of a preset number of output channels, wherein a value of M*N and a value of the preset number are respectively determined by preset Y*Y weights, and M, N and Y are all positive integers;

inputting read feature map data and the weights of the preset number of output channels into a multiply-add array of the preset number of output channels for a convolution calculation, wherein a mode of the convolution calculation comprises:

not performing the convolution calculation in a case that the feature map data or the weights of the output channels are zero, and

selecting one from a plurality of same values to perform the convolution calculation in a case that there are a plurality of feature map data with the same values; and

outputting a result of the convolution calculation.

16 . The storage medium according to claim 15 , wherein reading M*N feature map data of all the input channels and weights of the preset number of output channels comprises:

reading the M*N feature map data of all the input channels and saving them in a memory; and

reading the weights of the preset number of output channels and saving them in the memory.

17 . The storage medium according to claim 15 , wherein inputting read feature map data and the weights of the preset number of output channels into the multiply-add array of the preset number of output channels for a convolution calculation comprises:

inputting, in a first cycle, M*1 feature map data of a first line of a first input channel and the weights of the preset number of output channels into a calculation array of the preset number of output channels, and using a first group of Z*1 multiply-add units to perform a multiply-add calculation and then obtaining Z calculation results, wherein Z is determined by the preset Y*Y weights;

inputting, in a second cycle, M*1 feature map data of a second line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using a second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after a multiply-add calculation of a Y-th cycle is completed once a reading operation is performed, M*N feature map data of the first input channel is replaced as a whole, wherein the reading operation is an operation of reading the M*N feature map data of all the input channels and the weights of the preset number of output channels;

inputting, in a Y+2 cycle, M*1 feature map data of a Y+2 line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using a Y+2 group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after a Y*Yth cycle of the reading operation is performed, all multiply-add calculations of Z data in the first line of the first input channel are completed;

inputting the M*N feature map data of the preset number of input channels into the calculation array sequentially, and for the feature map data of each of the input channels, performing the multiply-add calculation for the M*1 feature map data of each line sequentially, until after Y*Y* preset number of cycles once the reading operation is performed, all the multiply-add calculations of Z data in the first line are completed, and outputting a calculation result; and

reading the M*N feature map data of all the input channels sequentially, and repeating a same operation as completing all the multiply-add calculation of Z data in the first line, until the feature map data of all the input channels are calculated.

18 . The storage medium according to claim 17 , wherein inputting, in the second cycle, the M*1 feature map data of a second line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using the second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after the multiply-add calculation of the Y-th cycle is completed once the reading operation is performed, the M*N feature map data of the first input channel is replaced as a whole, comprising:

inputting, in the second cycle, the M*1 feature map data of the second line of the first input channel and the weights of the preset number of output channels into the calculation array of the preset number of output channels, using the second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining an intermediate result of Z points of a next line, shifting the feature map data of the first line to a left side and making all multiply-add calculations in a same output point are implemented in a same multiply-add unit; and

inputting, in a third cycle, M*1 feature map data of a third line, and performing the same operation as a previous last cycle, until after the multiply-add calculation of the Y-th cycle is completed once the reading operation is performed, in a Y+1th cycle, inputting M*1 feature map data of a Y+1th line, performing the same operation as the previous last cycle and replacing the M*N feature map data of the first input channel as a whole.

19 . An electronic device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run a computer program to perform a data processing method, wherein the method comprises steps of:

reading M*N feature map data of all input channels and weights of a preset number of output channels, wherein a value of M*N and a value of the preset number are respectively determined by preset Y*Y weights, and M, N and Y are all positive integers;

inputting read feature map data and the weights of the preset number of output channels into a multiply-add array of the preset number of output channels for a convolution calculation, wherein a mode of the convolution calculation comprises:

not performing the convolution calculation in a case that the feature map data or the weights of the output channels are zero, and

selecting one from a plurality of same values to perform the convolution calculation in a case that there are a plurality of feature map data with the same values; and

outputting a result of the convolution calculation.

20 . The electronic device according to claim 19 , wherein reading M*N feature map data of all the input channels and weights of the preset number of output channels comprises:

reading the M*N feature map data of all the input channels and saving them in a memory; and

reading the weights of the preset number of output channels and saving them in the memory.

21 . The electronic device according to claim 19 , wherein inputting read feature map data and the weights of the preset number of output channels into the multiply-add array of the preset number of output channels for a convolution calculation comprises:

inputting, in a first cycle, M*1 feature map data of a first line of a first input channel and the weights of the preset number of output channels into a calculation array of the preset number of output channels, and using a first group of Z*1 multiply-add units to perform a multiply-add calculation and then obtaining Z calculation results, wherein Z is determined by the preset Y*Y weights;

inputting, in a second cycle, M*1 feature map data of a second line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using a second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after a multiply-add calculation of a Y-th cycle is completed once a reading operation is performed, M*N feature map data of the first input channel is replaced as a whole, wherein the reading operation is an operation of reading the M*N feature map data of all the input channels and the weights of the preset number of output channels;

inputting, in a Y+2 cycle, M*1 feature map data of a Y+2 line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using a Y+2 group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after a Y*Yth cycle of the reading operation is performed, all multiply-add calculations of Z data in the first line of the first input channel are completed;

inputting the M*N feature map data of the preset number of input channels into the calculation array sequentially, and for the feature map data of each of the input channels, performing the multiply-add calculation for the M*1 feature map data of each line sequentially, until after Y*Y* preset number of cycles once the reading operation is performed, all the multiply-add calculations of Z data in the first line are completed, and outputting a calculation result; and

reading the M*N feature map data of all the input channels sequentially and repeating a same operation as completing all the multiply-add calculation of Z data in the first line, until the feature map data of all the input channels are calculated.

22 . The electronic device according to claim 21 , wherein inputting, in the second cycle, the M*1 feature map data of a second line and the weights of the preset number of output channels into the calculation array of the preset number of output channels, and using the second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining Z calculation results, until after the multiply-add calculation of the Y-th cycle is completed once the reading operation is performed, the M*N feature map data of the first input channel is replaced as a whole, comprising:

inputting, in the second cycle, the M*1 feature map data of the second line of the first input channel and the weights of the preset number of output channels into the calculation array of the preset number of output channels, using the second group of Z*1 multiply-add units to perform the multiply-add calculation and then obtaining an intermediate result of Z points of a next line, shifting the feature map data of the first line to a left side and making all multiply-add calculations in a same output point are implemented in a same multiply-add unit; and

inputting, in a third cycle, M*1 feature map data of a third line and performing the same operation as a previous last cycle, until after the multiply-add calculation of the Y-th cycle is completed once the reading operation is performed, in a Y+1th cycle, inputting M*1 feature map data of a Y+1th line, performing the same operation as the previous last cycle and replacing the M*N feature map data of the first input channel as a whole.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2022
From: ZTE CORPORATION
To: SANECHIPS TECHNOLOGY CO., LTD.
Reel/Frame 061983/0105 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2021
From: WANG, HONG; XU, KE; LU, GUONING; ZHEN, DEGEN; KONG, DEHUI; ZHANG, XIAO
To: ZTE CORPORATION
Reel/Frame 058612/0148 →