Heterogeneous architecture for depthwise-seperable convolution based neural network computation acceleration
AssigneeBlack Sesame International Holding Limited
InventorsYi Wang, Zheng Qi
Life of this patent
Estimating the term…
Abstract
The present invention relates to a method and a system for performing depthwise separable convolution on an input data in a convolutional neural network. The invention utilizes a heterogeneous architecture with a number of MAC arrays including 1D MAC arrays and 2D MAC arrays with a Winograd conversion logic to perform depthwise separable convolution. The depthwise separable convolution uses less weight parameters and thus less multiplications while it obtains the same computation results as the traditional convolution.
Claims15
A method for achieving high utilization of a neural network based computation using depthwise-separable convolution, wherein the method comprising:
- performing a point-wise convolution with a two dimensional MAC array on an input data for generating a first output within a spatial domain;
- performing a depth-wise convolution with a one dimensional MAC array on the first output for generating a second output within a Winograd domain;
- performing a point-wise convolution with the two dimensional MAC array on the second output for generating a final output within the spatial domain from the Winograd domain;
- splitting the final output into a plurality of units by a processing unit;
- stripping one or more units of the plurality of units by the processing unit;
- and
- accumulating the one or more units of the plurality of units for computing the depthwise-separable convolution.
The method in accordance with claim 6, wherein the conversion from the Winograd domain to the spatial domain is performed by an adder tree structure.
The BST chip in accordance with claim 9 is A500, A2000 and A1000.
A heterogeneous architecture for depthwise-separable convolution based neural network computation acceleration, wherein the heterogeneous architecture comprising:
- a plurality of MAC arrays to perform depthwise-separable convolution, wherein the depthwise-separable convolution, further wherein the plurality of MAC arrays comprising:
- one or more two-dimensional MAC-arrays for performing a point-wise convolution in a spatial domain, wherein the one or more two-dimensional MAC-arrays performs the point-wise convolution on an input data to generates a first output;
- and
- one or more one-dimensional MAC-arrays for performing a depthwise convolution in a Winograd domain, wherein the one or more one-dimensional MAC-arrays performs the Winograd convolution on the first output to generate a second output, further wherein the one or more two-dimensional MAC-arrays performs the point-wise convolution on the second output with an adder tree structure to generate a final output:
- a processing unit, wherein the processing unit comprising:
- a splitting unit, wherein the splitting unit splits the final output into a plurality of tiles;
- a stripping unit, wherein the stripping unit strips one or more units of the plurality of tiles;
- and
- an accumulator, wherein the accumulator accumulates the one or more units of the plurality of tiles for computing the depthwise-separable convolution.
A computer program product comprising a computer useable medium having computer program logic for enabling at least one processor in a computer system for performing a high utilization of a neural network based computation using depthwise-separable convolution, said computer program logic comprising:
- performing a point-wise convolution with a two dimensional MAC array on an input data for generating a first output within a spatial domain;
- performing a depth-wise convolution with a one dimensional MAC array on the first output for generating a second output within a Winograd domain;
- performing a point-wise convolution with the two dimensional MAC array on the second output for generating a final output within the spatial domain from the Winograd domain;
- splitting the final output into a plurality of units by a processing unit;
- stripping one or more units of the plurality of units by the processing unit;
- and
- accumulating the one or more units of the plurality of units for computing the depthwise-separable convolution.
Dependencies are inferred from the claim text.