A method, comprising: performing a matrix operation to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory, wherein performing the matrix operation comprises: accessing data associated with the input matrix using one or more strided memory operations , wherein the one or more strided memory operations are configured to access the two-dimensional memory at a plurality of locations that are separated by a particular interval; and storing the data accessed using the one or more strided memory operations in a result matrix, wherein the data accessed using each strided memory operation is stored in the result matrix in non-transpose form or transpose form , wherein the non-transpose form comprises a same form in which the data is accessed in the two-dimensional memory and wherein the transpose form comprises a form in which the data accessed in the two-dimensional memory is transposed, characterized in that the matrix operation includes a matrix multiplication operation being distributed across multiple processing resources according to the number of the multiple processing resources and in that a dual-cyclical configuration of processing resources enables each processing resource to perform matrix computations while simultaneously obtaining matrix operands and data from both of its neighboring processing resources . performing a matrix operation to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory, wherein performing the matrix operation comprises: accessing data associated with the input matrix using one or more strided memory operations , wherein the one or more strided memory operations are configured to access the two-dimensional memory at a plurality of locations that are separated by a particular interval; and storing the data accessed using the one or more strided memory operations in a result matrix, wherein the data accessed using each strided memory operation is stored in the result matrix in non-transpose form or transpose form , wherein the non-transpose form comprises a same form in which the data is accessed in the two-dimensional memory and wherein the transpose form comprises a form in which the data accessed in the two-dimensional memory is transposed, accessing data associated with the input matrix using one or more strided memory operations , wherein the one or more strided memory operations are configured to access the two-dimensional memory at a plurality of locations that are separated by a particular interval; and storing the data accessed using the one or more strided memory operations in a result matrix, wherein the data accessed using each strided memory operation is stored in the result matrix in non-transpose form or transpose form , wherein the non-transpose form comprises a same form in which the data is accessed in the two-dimensional memory and wherein the transpose form comprises a form in which the data accessed in the two-dimensional memory is transposed, characterized in that the matrix operation includes a matrix multiplication operation being distributed across multiple processing resources according to the number of the multiple processing resources and in that a dual-cyclical configuration of processing resources enables each processing resource to perform matrix computations while simultaneously obtaining matrix operands and data from both of its neighboring processing resources . <EOS>