Dimension shuffling using matrix processors
AssigneeIntel Corporation
InventorsVijay Anand R. Korthikanti, Aravind Kalaiah, Tony L. Werner, Amir Khosrowshahi
Life of this patent
Estimating the term…
Abstract
In one embodiment, a matrix operation may be performed to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory. Data associated with the input matrix may be accessed 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. The data accessed using the one or more strided memory operations may be stored 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.
Claims20
An apparatus, comprising:
- a memory element comprising two-dimensional memory;
- and
- a processor to perform a matrix operation to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory, wherein the processor is configured to:
- access data associated with the input matrix using a plurality of strided memory operations, wherein the plurality of strided memory operations are configured to access the two-dimensional memory at a plurality of locations that are separated by a particular interval, and wherein the plurality of strided memory operations comprise:
- at least one non-transpose convolutional read, wherein data accessed using the at least one non-transpose convolutional read is to be stored in non-transpose form;
- and
- at least one transpose convolutional read, wherein data accessed using the at least one transpose convolutional read is to be stored in transpose form;
- and
- store the data accessed using the plurality of 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.
A method performed by a matrix processor, comprising:
- performing a matrix operation to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory circuitry, wherein performing the matrix operation comprises:
- accessing data associated with the input matrix using a plurality of strided memory operations, wherein the plurality of strided memory operations are configured to access the two-dimensional memory circuitry at a plurality of locations that are separated by a particular interval, and wherein the plurality of strided memory operations comprise:
- at least one non-transpose convolutional read, wherein data accessed using the at least one non-transpose convolutional read is to be stored in non-transpose form;
- and
- at least one transpose convolutional read, wherein data accessed using the at least one transpose convolutional read is to be stored in transpose form;
- and
- storing the data accessed using the plurality of 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.
A system, comprising:
- a memory element comprising two-dimensional memory;
- a plurality of processing elements, comprising:
- a host processor;
- one or more matrix processing chips;
- a plurality of matrix processors associated with the one or more matrix processing chips;
- wherein a matrix processor of the plurality of matrix processors is to perform a matrix operation to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory, wherein the matrix processor is configured to:
- access data associated with the input matrix using a plurality of strided memory operations, wherein the plurality of strided memory operations are configured to access the two-dimensional memory at a plurality of locations that are separated by a particular interval, and wherein the plurality of strided memory operations comprise:
- at least one non-transpose convolutional read, wherein data accessed using the at least one non-transpose convolutional read is to be stored in non-transpose form;
- and
- at least one transpose convolutional read, wherein data accessed using the at least one transpose convolutional read is to be stored in transpose form;
- and
- store the data accessed using the plurality of 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.
At least one non-transitory machine accessible storage medium having instructions stored thereon, the instructions, when executed on a machine, cause the machine to:
- perform a matrix operation to reorder a plurality of dimensions of an input matrix stored in two-dimensional memory, wherein the instructions that cause the machine to perform the matrix operation further cause the machine to:
- access data associated with the input matrix using a plurality of strided memory operations, wherein the plurality of strided memory operations are configured to access the two-dimensional memory at a plurality of locations that are separated by a particular interval, and wherein the plurality of strided memory operations comprise:
- at least one non-transpose convolutional read, wherein data accessed using the at least one non-transpose convolutional read is to be stored in non-transpose form;
- and
- at least one transpose convolutional read, wherein data accessed using the at least one transpose convolutional read is to be stored in transpose form;
- and
- store the data accessed using the plurality of 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.
Dependencies are inferred from the claim text.