Patent ID: 11900577
Assignee: CANON KABUSHIKI KAISHA
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 18:
19. A processing apparatus for performing operations with a convolutional neural network having a plurality of layers, the apparatus comprising:
a controller configured to sequentially select each of the plurality of layers as a target layer;
a data holder configured to hold at least some of data of a plurality of channels in the target layer;
a plurality of processors, each comprising a processing core and a storage, wherein the processing cores of the plurality of processors are configured to perform, in parallel, a multiplication operation using the data of one channel of the target layer and a coefficient corresponding to the target layer, and each of the storages of the plurality of processors is configured to accumulate a result of the multiplication operation; and
a selector configured to select whether to perform first processing or second processing on the basis of information specifying processing in the target layer,
the first processing including:
inputting the data of different channels of the target layer, held by the data holder, into respective processors of the plurality of processors in parallel;
inputting the data of pixels of one channel of the target layer into a processing core of a corresponding processor of the plurality of processors;
performing the multiplication operation using the data of pixels of one channel of the target layer and the coefficient corresponding to the target layer by the processing core of the corresponding processor; and
accumulating the result of the multiplication operation in the storage of the corresponding processor, wherein the accumulated results in the storages of the plurality of processor correspond to data of a pixel of respective channels of the next layer after the target layer, and

the second processing including:
sequentially reading out the data of each channel of the plurality of channels of the target layer, held by the data holder;
sequentially inputting the data of each channel of the plurality of channels of the target layer to the plurality of processors in parallel so as to inputting the same data of one channel of the target layer to the plurality of processors in parallel; and
performing the multiplication operation using the data of pixels of each channel of the target layer and the coefficient corresponding to the target layer by the processing core of each processor of the plurality of processors and accumulating the result of the multiplication operation in the storage of the same processor, wherein the accumulated results in the storages of the plurality of processor correspond to data of a pixel of respective channels of the next layer.