A method for convolution in a convolutional neural network (CNN) is provided that includes accessing a coefficient value of a filter corresponding to an input feature map of a convolution layer of the CNN, and performing a block multiply accumulation operation on a block of data elements of the input feature map, the block of data elements corresponding to the coefficient value, wherein, for each data element of the block of data elements, a value of the data element is multiplied by the coefficient value and a result of the multiply is added to a corresponding data element in a corresponding output block of data elements comprised in an output feature map.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for convolution in a convolutional neural network (CNN), the method comprising: accessing a coefficient value of a filter corresponding to an input feature map of a convolution layer of the CNN; and performing a block multiply accumulation operation on a block of data elements of the input feature map, the block of data elements corresponding to the coefficient value, wherein, for each data element of the block of data elements, a value of the data element is multiplied by the coefficient value and a result of the multiply is added to a corresponding data element in a corresponding output block of data elements comprised in an output feature map. 2. The method of claim 1, wherein performing a block multiply accumulation operation further comprises performing the block multiply accumulation operation only when the coefficient value is nonzero. 3. The method of claim 2, wherein the CNN is a sparsified CNN. 4. The method of claim 3, wherein the sparsifed CNN was generated by applying sparsified fine tuning after initial training of the CNN, wherein the sparsified fine tuning sets selected nonzero coefficients of filters of convolution layers of the CNN to zero. 5. The method of claim 4, wherein the sparsified fine tuning used a sparsity threshold determined based on a sparsity target and a maximum sparsity threshold to select nonzero coefficients of the filter to be set to zero. 6. The method of claim 1, wherein accessing a coefficient value further comprises accessing the coefficient value from a plurality of nonzero coefficient values identified by block analysis of the convolution layer, wherein the corresponding block of data elements and the corresponding output block of data elements are also identified by the block analysis. 7. An apparatus comprising: a processor; and a memory storing software instructions that, when executed by the processor, cause convolution of an input feature map of a convolution layer of a convolutional neural network (CNN) to be performed wherein a coefficient value of a filter corresponding to the input feature map is accessed; and a block multiply accumulation operation is performed on a block of data elements of the input feature map, the block of data elements corresponding to the coefficient value, wherein, for each data element of the block of data elements, a value of the data element is multiplied by the coefficient value and a result of the multiply is added to a corresponding data element in a corresponding output block of data elements comprised in an output feature map. 8. The apparatus of claim 7, wherein the apparatus is a system-on-a-chip. 9. The apparatus of claim 7, wherein the block multiply accumulation operation is performed only when the coefficient value is nonzero. 10. The apparatus of claim 9, wherein the CNN is a sparsified CNN. 11. The apparatus of claim 10, wherein the sparsifed CNN was generated by applying sparsified fine tuning after training of the CNN, wherein the sparsified fine tuning sets selected nonzero coefficients of filters of convolution layers of the CNN to zero. 12. The apparatus of claim 11, wherein the sparsified fine tuning used a sparsity threshold determined based on a sparsity target and a maximum sparsity threshold to select nonzero coefficients of the filter to be set to zero. 13. The apparatus of claim 7, wherein the coefficient value is accessed from a set of nonzero coefficient values identified by block analysis of the convolution layer, wherein the corresponding block of data elements and the corresponding output block of data elements are also identified by the block analysis. 14. A method for convolution of an input feature map of a convolution layer in a convolutional neural network (CNN), the method comprising: accessing a nonzero coefficient value of a filter corresponding to the input feature map from a first plurality of nonzero coefficients of the filter; accessing a pointer to a block of data elements of the input feature map corresponding to the nonzero coefficient value from a second plurality of pointers to blocks of the feature map corresponding to the nonzero coefficient values of the first plurality; accessing a pointer to an output block of data elements of an output feature map corresponding to the block of data elements from a third plurality of pointers to output blocks of the output feature map corresponding to blocks of data elements in the second plurality; and performing a block multiply accumulation operation on the block of data elements wherein, for each data element of the block of data elements, a value of the data element is multiplied by the nonzero coefficient value and a result of the multiply is added to a corresponding data element in the output block of data elements. 15. The method of claim 14, wherein the CNN is a sparsified CNN. 16. The method of claim 15, wherein the sparsifed CNN was generated by applying sparsified fine tuning after training of the CNN, wherein the sparsified fine tuning sets selected nonzero coefficients of filters of convolution layers of the CNN to zero. 17. The method of claim 16, wherein the sparsified fine tuning uses a sparsity threshold determined based on a sparsity target and a maximum sparsity threshold to select nonzero coefficients of the filter to be set to zero. 18. The method of claim 14, wherein the first plurality, the second plurality, and the third plurality are generated by block analysis of the convolution layer. 19. A computer readable medium storing software instructions that, when executed by one or more processors, cause execution of convolution in a convolutional neural network (CNN), the software instructions comprising instructions to: access a coefficient value of a filter corresponding to a feature map in a convolution layer of the CNN; and perform a block multiply accumulation operation on a block of data elements of the feature map, the block of data elements corresponding to the coefficient value, wherein, for each data element of the block of data elements, a value of the data element is multiplied by the coefficient value and a result of the multiply is added to a corresponding data element in a corresponding output block of data elements comprised in an output feature map. 20. The computer readable medium of claim 19, wherein the instructions to perform a block multiply accumulation operation further comprise instructions to perform the block multiply accumulation operation only when the coefficient value is nonzero. 21. The computer readable medium of claim 19, wherein the instructions to access a coefficient value further comprise instructions to access the coefficient value from a plurality of nonzero coefficient values identified by block analysis of the convolution layer, wherein the corresponding block of data elements and the corresponding output block of data elements are also identified by the block analysis.