IP Library Granted Patent US 10,984,074
Granted Patent B2
US 10,984,074 · App. 16/799,586 · Granted Apr 20, 2021

Accelerator for sparse-dense matrix multiplication

Inventors: Srinivasan Narayanamoorthy (Hillsboro, OR); Nadathur Rajagopalan Satish (Santa Clara, CA); Alexey Suprun (Beaverton, OR); Kenneth J. Janik (Hillsboro, OR)
Assignee: Intel Corporation
G06F17/16G06F7/5443G06F9/3001G06F9/3016G06F9/30036G06F9/30145G06F9/383G06F9/3887G06N3/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,984,074
App. No.
16/799,586
Granted
Apr 20, 2021
Kind
B2
Abstract

Disclosed embodiments relate to an accelerator for sparse-dense matrix instructions. In one example, a processor to execute a sparse-dense matrix multiplication instruction, includes fetch circuitry to fetch the sparse-dense matrix multiplication instruction having fields to specify an opcode, a dense output matrix, a dense source matrix, and a sparse source matrix having a sparsity of non-zero elements, the sparsity being less than one, decode circuitry to decode the fetched sparse-dense matrix multiplication instruction, execution circuitry to execute the decoded sparse-dense matrix multiplication instruction to, for each non-zero element at row M and column K of the specified sparse source matrix generate a product of the non-zero element and each corresponding dense element at row K and column N of the specified dense source matrix, and generate an accumulated sum of each generated product and a previous value of a corresponding output element at row M and column N of the specified dense output matrix.

Claims (11)

1. A processor comprising:

local data storage circuitry configured to store matrix data including at least a portion of a first source matrix and at least a portion of a second source matrix, wherein the first source matrix comprises a sparse matrix stored in a compressed sparse matrix format; and

execution circuitry configured to execute a dense-sparse matrix multiply-accumulate instruction to perform multiply-accumulate operations with data elements from the first source matrix and the second source matrix to generate a result matrix, the execution circuitry comprising:

first logic or circuitry configured to interpret the compressed sparse matrix format to identify matrix coordinates of non-zero data elements in the first source matrix and to identify intersections between the identified matrix coordinates and corresponding coordinates of data elements in the second source matrix; and

an array of multiply-accumulate processing units configured to multiply the non-zero data elements of the first source matrix by the data elements in the second source matrix identified based on the identified matrix coordinates to generate a plurality of products and to add the plurality of products to a plurality of accumulated values to generate one or more data elements of the result matrix.

2. The processor of claim 1 wherein each matrix coordinate of a non-zero data element in the first source matrix is to be used to identify a row and/or column in the second source matrix comprising a plurality of data elements, wherein the array of multiply-accumulate processing units are to multiply the non-zero data element in the first matrix by each of the plurality of data elements to generate a corresponding plurality of products.

3. The processor of claim 1 wherein the second source matrix comprises a dense matrix.

4. The processor of claim 1 wherein the compressed sparse matrix format comprises a compressed sparse row (CSR) format or a compressed sparse column (CSC) format.

5. The processor of claim 3 further comprising an instruction decoder configured to decode the dense-sparse matrix multiply-accumulate instruction.

6. The processor of claim 5 wherein the dense-sparse matrix multiply-accumulate instruction comprises a plurality of fields including a first field to specify an opcode, a second field to identify the result matrix, a third field to identify the first source matrix, and a fourth field to identify the second source matrix.

7. The processor of claim 1 wherein the first source matrix and the second source matrix comprise an activation matrix and a weight vector in a machine-learning implementation.

Continuity (2)
Continuation 15938924 · Mar 28, 2018
Related Publication 20200265107A1 · Aug 20, 2020