Storage of a matrix on a storage compute device

US10061747B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10061747-B2
Application numberUS-201514704128-A
CountryUS
Kind codeB2
Filing dateMay 5, 2015
Priority dateMay 7, 2014
Publication dateAug 28, 2018
Grant dateAug 28, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A compressed format is selected for storage of a matrix based on a computation to be performed using the matrix and architecture of a storage compute device to which the matrix is stored. Data of the matrix is stored on the storage compute device according to the compressed format. The computation is performed using the data via a computation unit that resides within the storage compute device.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving a matrix from a host via a host interface of a data storage device, the host comprising a central processing unit and the data storage device comprising a local processor separate from the central processing unit of the host; selecting a compressed format for storage of the matrix based on a computation to be performed using the matrix and architectures of a computation unit of the storage compute device and the non-volatile memory to which the matrix is stored; storing data of the matrix on the non-volatile memory of the storage compute device according to the compressed format; and performing the computation using the data via a computation unit that resides within the storage compute device. 2. The method of claim 1 , wherein the compressed format is selected based on one or more of size of temporary storage buffers, page sizes of the storage compute device, and latency of the computation unit. 3. The method of claim 1 , wherein the computation comprises a multiplication, and wherein the compressed format is selected based on speed of accessing one of rows or columns of the matrix. 4. The method of claim 1 , further comprising creating an object metadata table for the matrix, the object metadata table including information about the compressed format. 5. The method of claim 1 , wherein performing the computation using the data via the computation unit comprising performing the computation in the compressed format. 6. The method of claim 1 , further comprising determining one or more additional compressed formats and storing the data of the matrix on the storage compute device according to the one or more additional compressed formats. 7. The method of claim 1 , further comprising determining a second compressed format for a results matrix of the computation, the second compressed format based on a second computation to be performed using the results matrix and the architecture of the storage compute device, and storing data of the results matrix on the storage compute device according to the second compressed format. 8. The method of claim 1 , wherein the host interface of the storage compute device receives the matrix and a command using a protocol associated with a legacy hard drive host interface, the command defining the computation to be performed on the matrix. 9. A storage compute device, comprising: a host interface; a channel interface that facilitates access to non-volatile memory; and a processing unit coupled to the host interface and the channel interface, the processing unit configured to: receive a matrix object from a host via the host interface, the host comprising a central processing unit separate from the processing unit of the storage compute device; determine a compressed format for storage of the matrix object to the non-volatile memory, the compressed format selected based on a computation to be performed using the matrix object and architecture of the non-volatile memory; receive data of the matrix object via the host interface and store the data to the non-volatile memory according to the compressed format; and perform the computation using the data. 10. The storage compute device of claim 9 , wherein the data of the matrix object is received via the host interface in an initial compressed format that is different than the compressed format, the processing unit further configured to additionally store the data in the initial compressed format. 11. The storage compute device of claim 9 , wherein the compressed format is selected based on one or more of size of temporary storage buffers, page sizes of the storage compute device, and latency of processing unit. 12. The storage compute device of claim 9 , wherein the computation comprises a multiplication, and wherein the compressed format is selected based on speed of accessing one of rows or columns of the matrix object. 13. The storage compute device of claim 9 , wherein the processing unit is further configured to create object metadata table for the matrix object, the object metadata table including information about the compressed format. 14. The storage compute device of claim 9 , wherein performing the computation comprises performing the computation in the compressed format. 15. The storage compute device of claim 9 , wherein the processing unit is further configured to determine one or more additional compressed formats and storing the data of the matrix object on the storage compute device according to the one or more additional compressed formats. 16. The storage compute device of claim 9 , wherein the processing unit is further configured to determine a second compressed format for a results matrix of the computation, the second compressed format based on a second computation to be performed using the results matrix and the architecture of the storage compute device, and storing data of the results matrix on the storage compute device according to the second compressed format. 17. A method, comprising: receiving, at a storage compute device from a host, matrix data and a computation to be performed on the matrix data by the storage compute device; selecting a format for storage of a matrix, the format selected based on the computation and known attributes of a hardware matrix computation engine of the storage compute device; storing data of the matrix on the storage compute device according to the format; and performing the computation using the stored data via the hardware matrix computation engine. 18. The method of claim 17 , wherein the attributes of the hardware matrix computation engine comprise any combination of: fetch patterns of the hardware matrix computation engine; size, speed, latency, and line size of temporary storage buffers; and width and latency of the hardware matrix computation engine. 19. The method of claim 17 , wherein the format is selected during a pre-processing step before performing the computation. 20. The method of claim 17 , wherein the format is selected adaptively as the computation is proceeding. 21. The method of claim 17 , wherein the format is determined based on any combination of density of the matrix data, locality of operands in memory, observed data access latencies, an amount of the matrix data fetched that is actually used for the computation before it is discarded from temporary storage buffers.

Assignees

Inventors

Classifications

  • Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction · CPC title

  • Fixed length to variable length coding · CPC title

  • G06F17/16Primary

    Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)} · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10061747B2 cover?
A compressed format is selected for storage of a matrix based on a computation to be performed using the matrix and architecture of a storage compute device to which the matrix is stored. Data of the matrix is stored on the storage compute device according to the compressed format. The computation is performed using the data via a computation unit that resides within the storage compute device.
Who is the assignee on this patent?
Seagate Technology Llc
What technology area does this patent fall under?
Primary CPC classification G06F17/16. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 28 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).