Methods, systems and apparatus to optimize sparse matrix applications

US2016378442A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016378442-A1
Application numberUS-201514750635-A
CountryUS
Kind codeA1
Filing dateJun 25, 2015
Priority dateJun 25, 2015
Publication dateDec 29, 2016
Grant date

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.

Methods, apparatus, systems and articles of manufacture are disclosed to optimize sparse matrix execution. An example disclosed apparatus includes a context former to identify a matrix function call from a matrix function library, the matrix function call associated with a sparse matrix, a pattern matcher to identify an operational pattern associated with the matrix function call, and a code generator to associate a function data structure with the matrix function call exhibiting the operational pattern, the function data structure stored external to the matrix function library, and facilitate a runtime link between the function data structure and the matrix function call.

First claim

Opening claim text (preview).

What is claimed is: 1 . An apparatus to optimize sparse matrix execution, comprising: a context former to identify a matrix function call from a matrix function library, the matrix function call associated with a sparse matrix; a pattern matcher to identify an operational pattern associated with the matrix function call; and a code generator to: associate a function data structure with the matrix function call exhibiting the operational pattern, the function data structure stored external to the matrix function library; and facilitate a runtime link between the function data structure and the matrix function call. 2 . An apparatus as defined in claim 1 , wherein the runtime link is to facilitate access by the matrix function call to persistent data associated with the sparse matrix. 3 . An apparatus as defined in claim 2 , further including a function field of the function data structure to facilitate one of reusing the persistent data with a consumer function, or performing a memory allocation operation. 4 . An apparatus as defined in claim 3 , wherein performing the memory allocation operation is to include storing a result vector of the matrix function when the consumer function is absent. 5 . An apparatus as defined in claim 3 , wherein the function field is to facilitate blocking of the memory allocation operation when the consumer function is to execute during the matrix function call. 6 . An apparatus as defined in claim 2 , further including a version checker to identify version information of the persistent data associated with the sparse matrix. 7 . An apparatus as defined in claim 6 , wherein the version checker is to compare the version information with a matrix data structure stored external to the matrix function library. 8 . An apparatus as defined in claim 7 , further including a knob reader/writer to retrieve updated persistent data from the matrix data structure when the version information of the persistent data associated with the sparse matrix is outdated. 9 . An apparatus as defined in claim 7 , further including a task graph builder to rebuild the sparse matrix when the version information of the persistent data is outdated. 10 . An apparatus as defined in claim 1 , wherein the operational pattern to be identified by the pattern matcher includes at least one of memory access operations, function call sequences, or consumer functions. 11 . A method to optimize sparse matrix execution, comprising: identifying a matrix function call from a matrix function library, the matrix function call associated with a sparse matrix; identifying an operational pattern associated with the matrix function call; associating a function data structure with the matrix function call exhibiting the operational pattern, the function data structure stored external to the matrix function library; and facilitating a runtime link between the function data structure and the matrix function call. 12 . A method as defined in claim 11 , further including facilitating access by the matrix function call to persistent data associated with the sparse matrix. 13 . A method as defined in claim 12 , further including accessing a function field of the function data structure to facilitate one of reusing the persistent data with a consumer function, or performing a memory allocation operation. 14 . A method as defined in claim 12 , further including identifying version information of the persistent data associated with the sparse matrix. 15 . A method as defined in claim 14 , further including comparing the version information with a matrix data structure stored externally to the matrix function library. 16 . A method as defined in claim 15 , further including retrieving updated persistent data from the matrix data structure when the version information of the persistent data associated with the sparse matrix is outdated. 17 . A method as defined in claim 15 , further including rebuilding the sparse matrix when the version information of the persistent data is outdated. 18 . A method as defined in claim 11 , further including identifying the operational pattern in response to identifying at least one of memory access operations, function call sequences, or consumer functions. 19 . A tangible machine-readable medium comprising instructions that, when executed, cause a machine to at least: identify a matrix function call from a matrix function library, the matrix function call associated with a sparse matrix; identify an operational pattern associated with the matrix function call; associate a function data structure with the matrix function call exhibiting the operational pattern, the function data structure stored external to the matrix function library; and facilitate a runtime link between the function data structure and the matrix function call. 20 . A machine-readable medium as disclosed in claim 19 , wherein the instructions, when executed, cause the machine to facilitate access by the matrix function call to persistent data associated with the sparse matrix. 21 . A machine-readable medium as disclosed in claim 20 , wherein the instructions, when executed, cause the machine to access a function field of the function data structure to facilitate one of reusing the persistent data with a consumer function, or performing a memory allocation operation. 22 . A machine-readable medium as disclosed in claim 20 , wherein the instructions, when executed, cause the machine to identify version information of the persistent data associated with the sparse matrix. 23 . A machine-readable medium as disclosed in claim 22 , wherein the instructions, when executed, cause the machine to compare the version information with a matrix data structure stored externally to the matrix function library. 24 . A machine-readable medium as disclosed in claim 23 , wherein the instructions, when executed, cause the machine to retrieve updated persistent data from the matrix data structure when the version information of the persistent data associated with the sparse matrix is outdated. 25 . A machine-readable medium as disclosed in claim 23 , wherein the instructions, when executed, cause the machine to rebuild the sparse matrix when the version information of the persistent data is outdated.

Assignees

Inventors

Classifications

  • Detection or removal of dead or redundant code · CPC title

  • Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title

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

  • G06F8/41Primary

    Compilation · CPC title

  • Optimisation · 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 US2016378442A1 cover?
Methods, apparatus, systems and articles of manufacture are disclosed to optimize sparse matrix execution. An example disclosed apparatus includes a context former to identify a matrix function call from a matrix function library, the matrix function call associated with a sparse matrix, a pattern matcher to identify an operational pattern associated with the matrix function call, and a code ge…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/41. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).