A method for extracting image data in parallel from multiple convolution windows by an accelerator device including multiple data processing units for transforming an image convolution operation into a multiplication of two-dimensional matrixes, the method comprising: dividing an image into N convolution windows grouped into multiple groups of convolution windows, wherein each group of convolution windows includes a number (P) of convolution windows corresponding to the number of available data processing units ; extracting image data in parallel from the (P) convolution windows in a first group of convolution windows of the multiple groups of convolution windows by using the available data processing units , wherein extracting image data from a convolution window by a corresponding processing unit comprises representing corresponding image data by using a one-dimensional vector having a length of Cx Rx S, wherein C is a number of channels in the image , R is a number of rows in each convolution window , and S is a number of columns in each convolution window ; extracting , in response to completing the extraction of image data from the first group of convolution windows, image data in parallel from the (P) convolution windows in a second group of convolution windows of the multiple groups of convolution windows by using the available data processing units , wherein the extracting the image data is repeated until the image data in all N convolution windows of the image is extracted; and storing all extracted image data in the multiple groups of convolution windows into a target memory by using a two-dimensional matrix having N rows and CxRxS columns, wherein a convolution kernel represented by a two-dimensional matrix having F rows and CxRxS columns is transposed into a two-dimensional matrix having CxRxS rows and F columns, so that an image convolution operation is transformed into a multiplication of the two two-dimensional matrixes. dividing an image into N convolution windows grouped into multiple groups of convolution windows, wherein each group of convolution windows includes a number (P) of convolution windows corresponding to the number of available data processing units ; extracting image data in parallel from the (P) convolution windows in a first group of convolution windows of the multiple groups of convolution windows by using the available data processing units , wherein extracting image data from a convolution window by a corresponding processing unit comprises representing corresponding image data by using a one-dimensional vector having a length of Cx Rx S, wherein C is a number of channels in the image , R is a number of rows in each convolution window , and S is a number of columns in each convolution window ; extracting , in response to completing the extraction of image data from the first group of convolution windows, image data in parallel from the (P) convolution windows in a second group of convolution windows of the multiple groups of convolution windows by using the available data processing units , wherein the extracting the image data is repeated until the image data in all N convolution windows of the image is extracted; and storing all extracted image data in the multiple groups of convolution windows into a target memory by using a two-dimensional matrix having N rows and CxRxS columns, wherein a convolution kernel represented by a two-dimensional matrix having F rows and CxRxS columns is transposed into a two-dimensional matrix having CxRxS rows and F columns, so that an image convolution operation is transformed into a multiplication of the two two-dimensional matrixes. <EOS>