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.