Arithmetic processing system and convolution operation method
An arithmetic processing system includes an external memory and an arithmetic-logic unit. The arithmetic-logic unit performs at least operations of 1) acquiring a first partition map from each input feature map stored in the external memory, the first partition map being one of partition maps included in the input feature map; executing a convolution operation on the first partition maps acquired from the external memory; storing, in the external memory, first partition maps that have undergone the convolution operation, and 2) acquiring a second partition map from each input feature map stored in the external memory, the second partition map being one of the partition maps; executing a convolution operation on the second partition maps acquired from the external memory; and storing, in the external memory, second partition maps that have undergone the convolution operation.
1 . An arithmetic processing system that executes a convolution operation, the arithmetic processing system comprising:
an external memory that stores a plurality of input feature maps that have not yet undergone the convolution operation and a plurality of filter factors that are used in the convolution operation; and
a processor that executes the convolution operation using the plurality of input feature maps and the plurality of filter factors,
wherein the processor performs at least operations of:
1) acquiring a plurality of first partition maps by acquiring a first partition map from each of the plurality of input feature maps stored in the external memory, each first partition map being one of a plurality of partition maps included in one of the plurality of input feature maps; executing the convolution operation on the plurality of first partition maps acquired from the external memory; and storing, in the external memory, the plurality of first partition maps that have undergone the convolution operation; and
2) acquiring a plurality of second partition maps by acquiring a second partition map from each of the plurality of input feature maps stored in the external memory, each second partition map being one of the plurality of partition maps included in one of the plurality of input feature maps; executing the convolution operation on the plurality of second partition maps acquired from the external memory; and storing, in the external memory, the plurality of second partition maps that have undergone the convolution operation,
wherein the plurality of first partition maps, upon which the convolution operation is executed, are non-overlapping, and
the plurality of second partition maps, upon which the convolution operation is executed, are non-overlapping.
2 . The arithmetic processing system according to claim 1 ,
wherein the processor acquires all of the plurality of filter factors from the external memory before executing the convolution operation.
3 . The arithmetic processing system according to claim 2 ,
wherein the processor executes the convolution operation on each of the plurality of first partition maps and each of the plurality of second partition maps, using the plurality of filter factors.
4 . The arithmetic processing system according to claim 1 ,
wherein the processor stores the plurality of first partition maps that have undergone the convolution operation, at adjacent addresses in the external memory.
5 . The arithmetic processing system according to claim 4 ,
wherein the processor stores the plurality of partition maps in the external memory, with a total number of the plurality of partition maps corresponding to a maximum number of the plurality of partition maps that are used in the convolution operation and a next convolution operation to be executed on a next layer.
6 . The arithmetic processing system according to claim 4 ,
wherein the processor stores the plurality of partition maps in the external memory, with a total number of the plurality of partition maps corresponding to a number of the plurality of input feature maps that are used in a next convolution operation to be executed on a next layer.
7 . The arithmetic processing system according to claim 4 ,
wherein the processor stores a second plurality of partition maps in the external memory, with the second plurality of partition maps including both of boundaries of the plurality of partition maps that are used in the convolution operation and boundaries of a next plurality of partition maps that are used in a next convolution operation to be executed on a next layer.
8 . The arithmetic processing system according to claim 1 ,
wherein a number of the plurality of input feature maps is an integer greater than or equal to 2, and
D ≥( d 1+ d 2)/ B 1 is satisfied,
where D is a number of partitions;
d1 is a data amount of the plurality of input feature maps;
d2 is a data amount of a plurality of output feature maps after execution of the convolution operation; and
B1 is a capacity of an internal memory of the processor.
9 . A convolution operation method of executing a convolution operation on input data, the convolution operation method comprising:
acquiring first partial data from each input data stored in an external memory, each first partial data being a first part of data included in one of the input data;
executing the convolution operation on each first partial data acquired from the external memory;
storing, in the external memory, each first partial data that has undergone the convolution operation;
acquiring second partial data from each input data stored in the external memory, each second partial data being a second part of the data included in one of the input data;
executing the convolution operation on each second partial data acquired from the external memory; and
storing, in the external memory, each second partial data that has undergone the convolution operation,
wherein the first partial data, upon which the convolution operation is executed, are non-overlapping, and
the second partial data, upon which the convolution operation is executed, are non-overlapping.
10 . An arithmetic processing system that executes a convolution operation, the arithmetic processing system comprising:
an external memory that stores a plurality of input feature maps that have undergone the convolution operation and a plurality of filter factors that are used in the convolution operation; and
a processor that executes the convolution operation using the plurality of input feature maps and the plurality of filter factors,
wherein the processor performs at least operations of:
1) acquiring compressed data of a plurality of first partition maps by acquiring compressed data of a first partition map from each of the plurality of input feature maps stored in the external memory, each first partition map being one of a plurality of partition maps included in one of the plurality of input feature maps;
2) decompressing compressed data of the plurality of first partition maps acquired from the external memory;
3) executing the convolution operation on the plurality of first partition maps; and
4) compressing and storing data of the plurality of first partition maps that have undergone the convolution operation, in the external memory, and
the plurality of first partition maps, upon which the convolution operation is executed, are non-overlapping.
11 . The arithmetic processing system according to claim 10 ,
wherein the processor further performs operations of:
5) acquiring compressed data of a plurality of second partition maps by acquiring compressed data of a second partition map from each of the plurality of input feature maps stored in the external memory, each second partition map being one of the plurality of partition maps included in one of the plurality of input feature maps;
6) decompressing compressed data of the plurality of second partition maps acquired from the external memory;
7) executing the convolution operation on the plurality of second partition maps; and
8) compressing and storing data of the plurality of second partition maps that have undergone the convolution operation, in the external memory, and
the plurality of second partition maps, upon which the convolution operation is executed, are non-overlapping.
12 . The arithmetic processing system according to claim 10 ,
wherein the processor acquires compressed data of the plurality of filter factors from the external memory before acquisition of the compressed data of the plurality of first partition maps.
13 . The arithmetic processing system according to claim 10 ,
wherein the processor stores the compressed data of the plurality of first partition maps that have undergone the convolution operation, at adjacent addresses in the external memory.
14 . The arithmetic processing system according to claim 13 ,
wherein the processor stores compressed data of the plurality of partition maps in the external memory, with a total number of the plurality of partition maps corresponding to a maximum number of the plurality of partition maps that are used in the convolution operation and a next convolution operation to be executed on a next layer.
15 . The arithmetic processing system according to claim 13 ,
wherein the processor stores compressed data of the plurality of partition maps in the external memory, with a total number of the plurality of partition maps corresponding to a number of the plurality of input feature maps that are used in a next convolution operation to be executed on a next layer.
16 . The arithmetic processing system according to claim 13 ,
wherein the processor stores compressed data of a second plurality of partition maps in the external memory, with the second plurality of partition maps including both of boundaries of the plurality of partition maps that are used in the convolution operation and boundaries of a next plurality of partition maps that are used in a next convolution operation to be executed on a next layer.