| CPC G06N 3/048 (2023.01) [G06F 5/01 (2013.01); G06F 7/50 (2013.01); G06F 7/5443 (2013.01); G06F 17/16 (2013.01); G06N 3/04 (2013.01); G06N 3/063 (2013.01); H03M 7/40 (2013.01); G06F 2207/386 (2013.01)] | 10 Claims |

|
1. A convolutional neural network computing system based on weight kneading, comprising:
a weight kneading module for acquiring multiple groups of activations to be operated and corresponding original weights, arranging the original weights in a computation sequence and aligning by bit to obtain a weight matrix, removing slack bits in the weight matrix to obtain a reduced matrix with vacancies, allowing essential bits in each column of the reduced matrix to fill the vacancies according to the computation sequence to obtain an intermediate matrix, removing null rows in the intermediate matrix, and placing zeros at vacancies of the intermediate matrix to obtain a kneading matrix, wherein each row of the kneading matrix serves as a kneading weight; and
a split accumulation module for obtaining, according to a correspondence relationship between the activations and the essential bits in the original weights, positional information of the activation corresponding to each bit of the kneading weight, sending the kneading weight to a split accumulator, which divides the kneading weight by bit into multiple weight segments, processing summation of the weight segments and the corresponding activations according to the positional information, and sending a processing result to an adder tree to obtain an output feature map by means of executing shift-and-add on the processing result,
wherein the original weights are 16-bit fixed-point numbers, and the split accumulator comprises splitters for dividing the kneading weight by bit.
|