Patent ID: 11907327
Assignee: SOCIONEXT INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 6:
7. An arithmetic method of performing convolution operations in convolutional layers of a neural network by calculating matrix products, using an arithmetic unit and an internal memory included in a large scale integration (LSI), the arithmetic method comprising, for each convolution layer of the convolution layers:
receiving input data for the convolution layer;
determining whether an amount of the input data is smaller than or equal to a predetermined amount of data;
selecting a first arithmetic mode and performing convolution operations in the first arithmetic mode, when the amount of the input data is determined to be smaller than or equal to the predetermined amount of data in the determining;
selecting a second arithmetic mode and performing convolution operations in the second arithmetic mode, when the amount of the input data is determined to be larger than the predetermined amount of data in the determining; and
outputting output data which is a result obtained by performing convolution operations in either the first arithmetic mode or the second arithmetic mode, wherein
the performing of convolution operations in the first arithmetic mode includes:
storing weight data for the convolutional layer in external memory located outside the LSI;
storing the input data for the convolutional layer in the internal memory; and
reading the weight data from the external memory into the internal memory part by part as first data of at least one row vector or column vector, and causing the arithmetic unit to calculate a matrix product of the first data and a matrix of the input data stored in the internal memory,

the weight data is read, as a whole, from the external memory into the internal memory only once,
the performing of convolution operations in the second arithmetic mode includes:
storing the input data and the weight data for the convolutional layer in the external memory located outside the LSI;
storing a part of the weight data from the external memory to the internal memory as first vector data which is data of at least one row vector or column vector;
reading the input data from the external memory into the internal memory part by part as second data of at least one column vector or row vector, and causing the arithmetic unit to calculate a matrix product of the second data and the first vector data stored in the internal memory;
storing another part of the weight data from the external memory to the internal memory as second vector data which is data of at least one row vector or column vector, the another part of the weight data being different from the part of the weight data; and
reading the input data from the external memory into the internal memory part by part as third data of at least one column vector or row vector, and causing the arithmetic unit to calculate a matrix product of the third data and the second vector data stored in the internal memory, and

the weight data is read, as a whole, from the external memory into the internal memory only once.