Method for Performing Arithmetic Operations Using a Multi-Core Processor
First Claim
Patent Images
1. A data processing system includes a multi-core processor with a plurality of processing elements each having a processor and a local memory, said data processing system comprising:
- a system memory for storing a value matrix in which non-zero elements of an input matrix are arranged, and a position matrix including elements each indicating positions of said non-zero elements of said input matrix;
a first processing element having a first local memory for storing a first sub-vector that is a part of said input vector;
a second processing element having a second local memory for storing a second sub-vector that is another part of said input vector;
a first readout unit configured to read out matrix elements sequentially one by one from said value matrix and from said position matrix stored in said system memory, and to store said read out matrix elements in said first local memory as newly-read matrix elements;
a first arithmetic unit in said first processing element configured to multiply two matrix elements every time a matrix element is read out by said first readout unit, wherein one of said two matrix elements corresponds to the position of a non-zero element indicated by each of said matrix elements read out from said position matrix in said first sub-vector, and the other of said two matrix elements being a non-zero element read out from said value matrix in said first sub-vector;
a second readout unit configured to read out a matrix element of said value matrix and said position matrix from said first local memory, and to store said matrix element in a second local memory as a newly-read matrix element every time an arithmetic operation is performed by said first arithmetic unit;
a second arithmetic unit in said second processing element configured to multiply two matrix elements every time a matrix element is read by said second readout unit, wherein one of said two matrix elements corresponds to a position of a non-zero element indicated by each of said matrix elements read from said position matrix in said second sub-vector, and the other of said two elements being a non-zero element read from said value matrix in said second sub-vector; and
an output unit in said second processing unit configured to generate each matrix element of a vector to indicate a product of said input matrix and said input vector based on results of said arithmetic operations performed by said first and second arithmetic units, and to store said matrix element in said system memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system for performing a matrix calculation is disclosed. The data processing system includes a multi-core processor with multiple processing elements each having a processor and a local memory. The data processing system includes a system memory, a first and second readout units, a first and second arithmetic unit, and an output unit.
20 Citations
10 Claims
-
1. A data processing system includes a multi-core processor with a plurality of processing elements each having a processor and a local memory, said data processing system comprising:
-
a system memory for storing a value matrix in which non-zero elements of an input matrix are arranged, and a position matrix including elements each indicating positions of said non-zero elements of said input matrix; a first processing element having a first local memory for storing a first sub-vector that is a part of said input vector; a second processing element having a second local memory for storing a second sub-vector that is another part of said input vector; a first readout unit configured to read out matrix elements sequentially one by one from said value matrix and from said position matrix stored in said system memory, and to store said read out matrix elements in said first local memory as newly-read matrix elements; a first arithmetic unit in said first processing element configured to multiply two matrix elements every time a matrix element is read out by said first readout unit, wherein one of said two matrix elements corresponds to the position of a non-zero element indicated by each of said matrix elements read out from said position matrix in said first sub-vector, and the other of said two matrix elements being a non-zero element read out from said value matrix in said first sub-vector; a second readout unit configured to read out a matrix element of said value matrix and said position matrix from said first local memory, and to store said matrix element in a second local memory as a newly-read matrix element every time an arithmetic operation is performed by said first arithmetic unit; a second arithmetic unit in said second processing element configured to multiply two matrix elements every time a matrix element is read by said second readout unit, wherein one of said two matrix elements corresponds to a position of a non-zero element indicated by each of said matrix elements read from said position matrix in said second sub-vector, and the other of said two elements being a non-zero element read from said value matrix in said second sub-vector; and an output unit in said second processing unit configured to generate each matrix element of a vector to indicate a product of said input matrix and said input vector based on results of said arithmetic operations performed by said first and second arithmetic units, and to store said matrix element in said system memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for calculating a product of an input matrix and an input vector using a multi-core processor having a plurality of processing elements each having a processor and a local memory, said method comprising:
-
storing in a system memory a value matrix in which non-zero matrix elements of said input matrix are arranged, and a position matrix for indicating positions of said non-zero elements; storing in a first local memory of a first one of said processing elements a first sub-vector that is a first part of said input vector; storing in a second local memory of a second one of said processing elements a second sub-vector that is second part of said input vector; sequentially reading out matrix elements from said value matrix and from said position matrix within said system memory, and storing said read out matrix elements in said first local memory as newly-read matrix elements; multiplying two elements in said first processing element every time a matrix element is being read out, wherein one of said two elements corresponds to the position of a non-zero element indicated by each of said matrix elements read out from said position matrix in said first sub-vector, and the other of said two elements being a non-zero element read out from said value matrix in said first sub-vector; reading out a matrix element of said value matrix and said position matrix from said first local memory and storing said matrix element in said second local memory as a newly-read matrix element every time said multiplying is being performed; multiplying two matrix elements in said second processing element every time a matrix element is being read out from said first local memory, wherein one of said two matrix elements corresponds to the position of a non-zero element indicated by each of said matrix elements read from said position matrix in said second sub-vector, and the other of said two matrix elements being a non-zero element read from said value matrix in said second sub-vector; and generating each matrix element of a vector indicating a product of said input matrix and said input vector based on results from said two multiplying operations.
-
Specification