In one embodiment, a matrix operation may be performed using a plurality of input matrices, wherein the matrix operation is associated with one or more convolution operations. The plurality of input matrices may be partitioned into a plurality of input partitions, wherein the plurality of input matrices is partitioned based on a number of available processing elements. The plurality of input partitions may be distributed among a plurality of processing elements, wherein each input partition is distributed to a particular processing element of the plurality of processing elements. A plurality of partial matrix operations may be performed using the plurality of processing elements, and partial matrix data may be transmitted between the plurality of processing elements while performing the plurality of partial matrix operations. A result of the matrix operation may be determined based on the plurality of partial matrix operations.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. An apparatus, comprising: a plurality of memory elements to store matrix data; and a plurality of processing elements to perform a matrix operation using a plurality of input matrices, wherein the matrix operation is associated with one or more convolution operations; wherein the plurality of processing elements is configured to: partition the plurality of input matrices into a plurality of input partitions, wherein the plurality of input matrices is partitioned based on a number of available processing elements; distribute the plurality of input partitions among the plurality of processing elements, wherein each input partition is distributed to a particular processing element of the plurality of processing elements; perform a plurality of partial matrix operations using the plurality of processing elements; transmit partial matrix data between the plurality of processing elements while performing the plurality of partial matrix operations; and determine a result of the matrix operation based on the plurality of partial matrix operations. 2. The apparatus of claim 1, wherein: the plurality of processing elements is configured in a hierarchical arrangement comprising a plurality of processing levels; and the plurality of processing elements is further configured to distribute the matrix operation across the plurality of processing levels. 3. The apparatus of claim 2, wherein the plurality of processing elements comprises: a plurality of matrix processing chips; a plurality of logical processing nodes associated with each matrix processing chip; and a memory element and a plurality of matrix processing clusters associated with each logical processing node. 4. The apparatus of claim 1, wherein the plurality of input matrices comprises matrix data associated with one or more images and one or more filters, wherein the one or more images are associated with one or more channels. 5. The apparatus of claim 4, wherein the plurality of processing elements is further configured to partition the plurality of input matrices based on one or more of: a number of channels associated with the one or more images; a number of filters; and a number of images. 6. The apparatus of claim 1, wherein the plurality of processing elements is further configured to distribute the plurality of partial matrix operations among the plurality of processing elements based on a height and a width of the result of the matrix operation. 7. The apparatus of claim 1, wherein: the plurality of processing elements is configured in a cyclic arrangement such that each processing element is communicatively coupled to a plurality of neighbor processing elements; and the plurality of processing elements is further configured to: perform the plurality of partial matrix operations in a plurality of stages; and transmit a portion of the partial matrix data from each processing element to one or more of the neighbor processing elements while performing a particular stage of the partial matrix operations. 8. The apparatus of claim 7, wherein the partial matrix data comprises a partial input matrix, wherein the partial input matrix is to be used by a first processing element in a particular stage of the partial matrix operations, and wherein the partial input matrix is to be used by a second processing element in a subsequent stage of the partial matrix operations. 9. The apparatus of claim 8, wherein the matrix operation is associated with a weight update operation in a neural network. 10. The apparatus of claim 7, wherein the partial matrix data comprises a partial result matrix determined by a first processing element in a particular stage of the partial matrix operations, and wherein the partial result matrix is to be used by a second processing element in a subsequent stage of the partial matrix operations. 11. The apparatus of claim 10, wherein the matrix operation is associated with a forward propagation operation in a neural network. 12. The apparatus of claim 10, wherein the matrix operation is associated with a backward propagation operation in a neural network. 13. A method, comprising: performing a matrix operation using a plurality of input matrices, wherein the matrix operation is associated with one or more convolution operations, and wherein performing the matrix operation comprises: partitioning the plurality of input matrices into a plurality of input partitions, wherein the plurality of input matrices is partitioned based on a number of available processing elements; distributing the plurality of input partitions among a plurality of processing elements, wherein each input partition is distributed to a particular processing element of the plurality of processing elements; performing a plurality of partial matrix operations using the plurality of processing elements; transmitting partial matrix data between the plurality of processing elements while performing the plurality of partial matrix operations; and determining a result of the matrix operation based on the plurality of partial matrix operations. 14. The method of claim 13, wherein: the plurality of input matrices comprises matrix data associated with one or more images and one or more filters, wherein the one or more images are associated with one or more channels; and the plurality of input matrices is further partitioned based on one or more of: a number of channels associated with the one or more images; a number of filters; and a number of images. 15. The method of claim 13, further comprising distributing the plurality of partial matrix operations to the plurality of processing elements based on a height and a width of the result of the matrix operation. 16. The method of claim 13, wherein the plurality of processing elements is configured in a cyclic arrangement such that each processing element is communicatively coupled to a plurality of neighbor processing elements. 17. The method of claim 16, wherein the plurality of partial matrix operations is performed in a plurality of stages, and wherein each processing element transmits a portion of the partial matrix data to one or more of the neighbor processing elements while performing a particular stage of the partial matrix operations. 18. A system, comprising: a plurality of memory elements to store matrix data; a plurality of processing elements to perform a matrix operation using a plurality of input matrices, wherein the matrix operation is associated with one or more convolution operations, and wherein the plurality of processing elements comprises: a host processor; one or more matrix processing chips; a plurality of matrix processors associated with the one or more matrix processing chips; wherein the plurality of processing elements is configured to: partition the plurality of input matrices into a plurality of input partitions, wherein the plurality of input matrices is partitioned based on a number of available processing elements; distribute the plurality of input partitions among the plurality of processing elements, wherein each input partition is distributed to a particular processing element of the plurality of processing elements; perform a plurality of partial matrix operations using the plurality of processing elements; transmit partial matrix data between the plurality of processing elements while performing the plurality of partial matrix operations; and determine a result of the matrix operation based on the plurality of partial matrix operations. 19. The system of claim 18, further comprising a communication interface to communicate with one or more remote matrix processing chips over a communication network. 20. At least one machine accessible storage medium having instructions stored thereon, the instructions, when executed on a machine, cause the machine to: perform a matrix operation using a plurality of input matrices, wherein the matrix operation is associated with one or more convolution operations, and wherein the instructions that cause the machine to perform the matrix operation further cause the machine to: partition the plurality of input matrices into a plurality of input partitions, wherein the plurality of input matrices is partitioned based on a number of available processing elements; distribute the plurality of input partitions among a plurality of processing elements, wherein each input partition is distributed to a particular processing element of the plurality of processing elements; perform a plurality of partial matrix operations using the plurality of processing elements; transmit partial matrix data between the plurality of processing elements while performing the plurality of partial matrix operations; and determine a result of the matrix operation based on the plurality of partial matrix operations. 21. The storage medium of claim 20, wherein the plurality of input matrices comprises matrix data associated with one or more images and one or more filters, wherein the one or more images are associated with one or more channels. 22. The storage medium of claim 21, wherein the instructions further cause the machine to partition the plurality of input matrices based on one or more of: a number of channels associated with the one or more images; a number of filters; and a number of images. 23. The storage medium of claim 20, wherein the instructions further cause the machine to distribute the plurality of partial matrix operations to the plurality of processing elements based on a height and a width of the result of the matrix operation. 24. The storage medium of claim 20, wherein the plurality of processing elements is configured in a cyclic arrangement such that each processing element is communicatively coupled to a plurality of neighbor processing elements. 25. The storage medium of claim 24, wherein the instructions further cause the machine to: perform the plurality of partial matrix operations in a plurality of stages; and transmit a portion of the partial matrix data from each processing element to one or more of the neighbor processing elements while performing a particular stage of the partial matrix operations.