A system for accelerating convolutions in a neural network, the system comprising: a first logic circuit that generates N operands; a first input circuit arranged in a first dimension of a two-dimensional array, the first input circuit being coupled to receive the N operands from the first logic circuit; a second logic circuit that generates M operands; a second input circuit arranged in a second dimension of the two-dimensional array, the second input circuit being coupled to receive M operands from the second logic circuit; a matrix processor (240, 300) comprising a plurality of sub-circuits (242, 350, 400) coupled within the two-dimensional array, the plurality of sub-circuits (242, 350, 400) configured to perform dot-multiplications of the N operands and the M operands to generate dot-products (514, 630, 632); and an output array coupled to the two-dimensional array, the two-dimensional array configured to use the dot-products (514, 630, 632) to generate a result, characterised in that: the N operands are formatted from a data input matrix into a first vector and are representative of a row in an input data matrix; the M operands are formatted from a weight input matrix into a second vector and are representative of a column in a weight data matrix; columns (610, 612) of the input data matrix are vectorized forms of input matrices corresponding to areas of input data; and rows of the weight data matrix are vectorized forms of weight matrices corresponding to filters of a convolution operation. a first logic circuit that generates N operands; a first input circuit arranged in a first dimension of a two-dimensional array, the first input circuit being coupled to receive the N operands from the first logic circuit; a second logic circuit that generates M operands; a second input circuit arranged in a second dimension of the two-dimensional array, the second input circuit being coupled to receive M operands from the second logic circuit; a matrix processor (240, 300) comprising a plurality of sub-circuits (242, 350, 400) coupled within the two-dimensional array, the plurality of sub-circuits (242, 350, 400) configured to perform dot-multiplications of the N operands and the M operands to generate dot-products (514, 630, 632); and an output array coupled to the two-dimensional array, the two-dimensional array configured to use the dot-products (514, 630, 632) to generate a result, characterised in that: the N operands are formatted from a data input matrix into a first vector and are representative of a row in an input data matrix; the M operands are formatted from a weight input matrix into a second vector and are representative of a column in a weight data matrix; columns (610, 612) of the input data matrix are vectorized forms of input matrices corresponding to areas of input data; and rows of the weight data matrix are vectorized forms of weight matrices corresponding to filters of a convolution operation. the N operands are formatted from a data input matrix into a first vector and are representative of a row in an input data matrix; the M operands are formatted from a weight input matrix into a second vector and are representative of a column in a weight data matrix; columns (610, 612) of the input data matrix are vectorized forms of input matrices corresponding to areas of input data; and rows of the weight data matrix are vectorized forms of weight matrices corresponding to filters of a convolution operation.