CLAIMS

1. A method for performing a matrix convolution on a multidimensional input matrix for obtaining a multidimensional output matrix, the matrix convolution involving a set of dot product operations for obtaining all elements of the output matrix, each dot product operation of the set of dot product operations involving an input submatrix of the input matrix and at least one convolution matrix, the method comprising:

providing a memristive crossbar array configured to perform a vector matrix multiplication;

computing a subset of the set of dot product operations by storing the convolution matrices of the subset of dot product operations in the crossbar array; and

inputting to the crossbar array an input vector comprising all distinct elements of the input submatrices of the subset of dot product operations.

2. The method of claim 1, wherein computing the subset of the set of dot product operations further comprises:

selecting the subset of dot product operations such that the computation of the subset of dot product operations results in elements along two dimensions of the output matrix and such that each selected subset of dot product operations involves a different input vector.

3. The method of claim 1, wherein computing the subset of the set of dot product operations further comprises:

selecting the subset of dot product operations such that the computation of the subset of dot product operations results in elements along three dimensions of the output matrix and such that each selected subset of dot product operations involves a different input vector.

4. The method of claim 1, wherein a training or inference of a convolutional neural network involves at each layer of the convolutional neural network a layer operation that can be computed by the memristive crossbar array, wherein the matrix convolution is the layer operation of a given layer of the convolutional neural network .

5. The method of claim 4, wherein providing the memristive crossbar array configured to perform the vector matrix multiplication further comprises:

providing further memristive crossbar arrays such that each further layer of the convolutional neural network is associated with the memristive crossbar array;

interconnecting the memristive crossbar arrays for execution in a pipelined fashion; and

performing the computation step for each further layer of the convolutional neural network using a respective subset of dot product operations and the memristive crossbar array associated with the further layer of the convolutional neural network.

6. The method of claim 5, wherein the subset of dot product operations computed by each memristive crossbar array is selected such that a bandwidth requirement for each interconnection between the interconnected memristive crossbar arrays is identical.

7. The method of claim 1, wherein the memristive crossbar array comprises row lines and column lines intersecting the row lines, and resistive memory elements coupled between the row lines and the column lines at junctions formed by the row and column lines, a resistive memory element of the resistive memory elements representing a value an element of a matrix.

8. The method of claim 7, wherein storing the convolution matrices comprises:

for each dot product operation of the subset of dot product operations, storing all elements of convolution matrices involved in the dot product operation in resistive memory elements of a respective single column line of the crossbar array.

9. The method of claim 7, wherein storing of the convolution matrices comprises:

storing all the elements of convolution matrices involved in each dot product operation of the subset in a respective column line, the column lines outputting different outputs being consecutive column lines of the crossbar array.

10. The method of claim 1, wherein storing of the convolution matrices comprises:

identifying a group of convolution matrices of the convolution matrices that are to be multiplied by the same input submatrix, storing all elements of each convolution matrix of the group in a column line of the crossbar array; and

repeating the identifying step and storing step for zero or more further groups of convolution matrices.

11. The method of claim 1, wherein the input and the output matrices comprise pixels of images or activation values from a layer of a convolutional neural network and the convolution matrices being kernels.

12. A memristive crossbar array for performing a matrix convolution on a multidimensional input matrix for obtaining a multidimensional output matrix, the matrix convolution involving a set of dot product operations for obtaining all elements of the output matrix, each dot product operation of the set of dot product operations involving an input submatrix of the input matrix and at least one convolution matrix, the crossbar array being configured for storing the convolution matrices in the crossbar array such that one input vector comprising all distinct elements of the input submatrices can be input to the crossbar array in order to perform a subset of dot product operations of the set of dot product operations.

13. A computer program product for performing a matrix convolution on a multidimensional input matrix for obtaining a multidimensional output matrix, the matrix convolution involving a set of dot product operations for obtaining all elements of the output matrix, each dot product operation of the set of dot product operations involving an input submatrix of the input matrix and at least one convolution matrix, the computer program product comprising:

a computer-readable storage medium having program code embodied therewith, the program code executable by at least one hardware processor to:

provide a memristive crossbar array configured to perform a vector matrix multiplication;

compute a subset of the set of dot product operations by storing the convolution matrices of the subset of dot product operations in the crossbar array; and

inputting to the crossbar array one input vector comprising all distinct elements of the input submatrices of the subset.

14. The computer program product of claim 13, wherein computing the subset of the set of dot product operations further comprises:

selecting the subset of dot product operations such that the computation of the subset of dot product operations results in elements along two dimensions of the output matrix and such that each selected subset of dot product operations involves a different input vector.

15. The computer program product of claim 13, wherein computing the subset of the set of dot product operations further comprises:

selecting the subset of dot product operations such that the computation of the subset of dot product operations results in elements along three dimensions of the output matrix and such that each selected subset of dot product operations involves a different input vector.

16. The computer program product of claim 13, wherein a training or inference of a convolutional neural network involves at each layer of the convolutional neural network a layer operation that can be computed by the memristive crossbar array, wherein the matrix convolution is the layer operation of a given layer of the convolutional neural network.

17. The computer program product of claim 16, wherein providing the memristive crossbar array configured to perform the vector matrix multiplication further comprises:

providing further memristive crossbar arrays such that each further layer of the convolutional neural network is associated with the memristive crossbar array;

interconnecting the memristive crossbar arrays for execution in a pipelined fashion; and

performing the computation step for each further layer of the convolutional neural network using a respective subset of dot product operations and the memristive crossbar array associated with the further layer of the convolutional neural network.

18. The computer program product of claim 17, wherein the subset of dot product operations computed by each memristive crossbar array is selected such that a bandwidth requirement for each interconnection between the interconnected memristive crossbar arrays is identical.

19. The computer program product of claim 13, wherein the memristive crossbar array comprises row lines and column lines intersecting the row lines, and resistive memory elements coupled between the row lines and the column lines at junctions formed by the row and column lines, a resistive memory element of the resistive memory elements representing a value an element of a matrix.

20. The computer program product of claim 13, wherein storing of the convolution matrices comprises:

identifying a group of convolution matrices of the convolution matrices that are to be multiplied by the same input submatrix, storing all elements of each convolution matrix of the group in a column line of the crossbar array; and

repeating the identifying step and storing step for zero or more further groups of convolution matrices.