Methods, systems and apparatus to optimize sparse matrix applications

US9720663B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9720663-B2
Application numberUS-201514750635-A
CountryUS
Kind codeB2
Filing dateJun 25, 2015
Priority dateJun 25, 2015
Publication dateAug 1, 2017
Grant dateAug 1, 2017

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 to 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; a code generator to: generate a matrix data structure identifying when persistent data of the sparse matrix changes, the matrix data structure stored external to the matrix function library; and generate a function data structure associated with the matrix function call, the function data structure stored external to the matrix function library; and generate a runtime association between the matrix data structure, the function data structure, and the matrix function call to prevent re-computation of the operational pattern during subsequent use of the matrix function call; and a version checker to determine when the persistent data of the sparse matrix changes based on a comparison of first version information of the matrix data structure and second version information of the function data structure, at least one of the context former, the pattern matcher, the code generator, or the version checker including hardware. 2. The apparatus as defined in claim 1 , wherein the runtime association is to enable access by the matrix function call to the persistent data associated with the sparse matrix. 3. The apparatus as defined in claim 2 , wherein the version checker is to determine that the persistent data associated with the sparse matrix changes when the first version information does not match the second version information. 4. The apparatus as defined in claim 3 , wherein the first version information of the matrix data structure identifies the latest version of the persistent data of the sparse matrix. 5. The apparatus as defined in claim 4 , further including a knob reader/writer to retrieve updated persistent data from the matrix data structure when the second version information of the persistent data associated with the sparse matrix is outdated. 6. The apparatus as defined in claim 4 , further including a task graph builder to rebuild the sparse matrix when the first version information of the persistent data is outdated. 7. The apparatus as defined in claim 1 , further including a function field of the function data structure to enable one of reusing the persistent data with a consumer function or performing a memory allocation operation. 8. The apparatus as defined in claim 7 , wherein the performing of the memory allocation operation includes storing a result vector of the matrix function when the consumer function is absent. 9. The apparatus as defined in claim 7 , wherein the function field is to enable blocking of the memory allocation operation when the consumer function executes during the matrix function call. 10. The apparatus as defined in claim 1 , wherein the operational pattern to be identified by the pattern matcher includes at least one of a memory access operation, a function call sequence, or a consumer function. 11. A method to optimize sparse matrix execution, comprising: identifying a matrix function call to a matrix function library, the matrix function call associated with a sparse matrix; identifying an operational pattern associated with the matrix function call; generating, by executing an instruction with a processor, a matrix data structure identifying when persistent data of the sparse matrix changes, the matrix data structure stored external to the matrix function library; generating, by executing an instruction with the processor, a function data structure associated with the matrix function call, the function data structure stored external to the matrix function library; determining, by executing an instruction with the processor, when the persistent data of the sparse matrix changes based on a comparison of first version data of the matrix data structure and second version data of the function data structure; and generating, by executing an instruction with the processor, a runtime association between the matrix data structure, the function data structure, and the matrix function call to prevent re-computation of the operational pattern during subsequent use of the matrix function call. 12. The method as defined in claim 11 , further including enabling access by the matrix function call to the persistent data associated with the sparse matrix. 13. The method as defined in claim 12 , wherein the determining that the persistent data associated with the sparse matrix changes includes determining the first version data does not match the second version data. 14. The method as defined in claim 13 , wherein the version data of the matrix data structure identifies the latest version of the persistent data of the sparse matrix. 15. The method as defined in claim 14 , further including retrieving updated persistent data from the matrix data structure when the second version data of the persistent data associated with the sparse matrix is outdated. 16. The method as defined in claim 14 , further including rebuilding the sparse matrix when the first version data of the persistent data is outdated. 17. The method as defined in claim 11 , further including accessing a function field of the function data structure to enable one of reusing the persistent data with a consumer function, or performing a memory allocation operation. 18. The method as defined in claim 11 , further including identifying the operational pattern in response to identifying at least one of a memory access operation, a function call sequence, or a consumer function. 19. A tangible non-transitory machine-readable medium comprising instructions that, when executed, cause a machine to at least: identify a matrix function call to a matrix function library, the matrix function call associated with a sparse matrix; identify an operational pattern associated with the matrix function call; generate a matrix data structure identifying when persistent data of the sparse matrix changes, the matrix data structure stored external to the matrix function library; generate a function data structure associated with the matrix function call, the function data structure stored external to the matrix function library; compare first version data of the matrix data structure and second version data of the function data structure to determine when the persistent data of the sparse matrix changes; and generate a runtime association between the matrix data structure, the function data structure, and the matrix function call to prevent re-computation of the operational pattern during subsequent use of the matrix function call. 20. The machine-readable medium as disclosed in claim 19 , wherein the instructions, when executed, cause the machine to enable access by the matrix function call to the persistent data associated with the sparse matrix. 21. The machine-readable medium as disclosed in claim 20 , wherein the instructions, when executed, cause the machine to determine that the persistent data associated with the sparse matrix changes when the first version data does not match the second version data. 22. The machine-readable medium as disclosed in claim 21 , wherein the first version data of the matrix data structure identifies the latest version of the persistent data of the sparse matrix. 23. The machine-readable medium as disclosed in claim 22 , wherei

Assignees

Inventors

Classifications

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

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

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

  • Optimisation · CPC title

  • G06F8/4434Primary

    Reducing the memory space required by the program code · 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 US9720663B2 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/4434. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 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).