US2024220574A1PendingUtilityA1

Dsp based compute engine for executing matrix operations

Assignee: META PLATFORMS TECH LLCPriority: Dec 28, 2022Filed: Nov 30, 2023Published: Jul 4, 2024
Est. expiryDec 28, 2042(~16.4 yrs left)· nominal 20-yr term from priority
G06F 17/16
51
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method implemented by a digital signal processor (DSP) including application-specific processing engines is provided. The method includes accessing, by the application-specific processing engines a configurable microcode. The configurable microcode includes a set of instructions configured to cause the application-specific processing engines to execute a matrix-based arithmetic algorithm. The method includes executing, by the application-specific processing engines, and based on the configurable microcode, the matrix-based arithmetic algorithm. Executing the matrix-based arithmetic algorithm includes receiving, by the application-specific processing engines, one or more input matrices, performing, by the application-specific processing engines, a plurality of computations based on the one or more input matrices by iteratively executing one or more of a predetermined set of arithmetic operations until the execution of the matrix-based arithmetic algorithm is completed, and generating, by the application-specific processing engines, an output corresponding to the completed execution of the matrix-based arithmetic algorithm.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method implemented by a digital signal processor (DSP) including one or more application-specific processing engines implemented on the DSP, the method comprising:
 accessing, by the one or more application-specific processing engines, and from a memory of the DSP system, a configurable microcode, wherein the configurable microcode comprises a set of instructions configured to cause the one or more application-specific processing engines to execute a matrix-based arithmetic algorithm; and   executing, by the one or more application-specific processing engines, and based on the configurable microcode, the matrix-based arithmetic algorithm, wherein executing the matrix-based arithmetic algorithm comprises:
 receiving, by the one or more application-specific processing engines, one or more input matrices; 
 performing, by the one or more application-specific processing engines, a plurality of computations based on the one or more input matrices by iteratively executing one or more of a predetermined set of arithmetic operations until the execution of the matrix-based arithmetic algorithm is completed; and 
 generating, by the one or more application-specific processing engines, an output corresponding to the completed execution of the matrix-based arithmetic algorithm. 
   
     
     
         2 . The method of  claim 1 , wherein executing the matrix-based arithmetic algorithm comprises executing, by the one or more application-specific processing engines, and based on the configurable microcode, one or more of a Cholesky decomposition algorithm, a general matrix multiplication (GeMM) algorithm, a triangular solve matrix (TRSM) algorithm, or a triangular matrix matrix multiplication (TRMM) algorithm. 
     
     
         3 . The method of  claim 1 , wherein iteratively executing one or more of the predetermined set of arithmetic operations comprises iteratively executing one or more of a multiplication operation, a reciprocal square root operation, or a reciprocal function operation. 
     
     
         4 . The method of  claim 1 , wherein the one or more application-specific processing engines comprises an arithmetic logic unit (ALU) configured to execute the one or more of the predetermined set of arithmetic operations. 
     
     
         5 . The method of  claim 1 , wherein the configurable microcode is reconfigured, and wherein the matrix-based arithmetic algorithm comprises a first matrix-based arithmetic algorithm, the method further comprising:
 accessing, by the one or more application-specific processing engines, and from the memory of the DSP system, the reconfigured microcode; and   executing, by the one or more application-specific processing engines, and based on the reconfigured microcode, a second matrix-based arithmetic algorithm, wherein the second matrix-based arithmetic algorithm is different from the first matrix-based arithmetic algorithm.   
     
     
         6 . The method of  claim 1 , receiving the one or more input matrices comprises receiving, by the one or more application-specific processing engines, a 2×2 input matrix, a 4×4 input matrix, or an 8×8 input matrix. 
     
     
         7 . The method of  claim 1 , further comprising:
 storing the output corresponding to the completed execution of the matrix-based arithmetic algorithm to the memory of the DSP system.   
     
     
         8 . A digital signal processor (DSP) including one or more application-specific processing engines implemented on the DSP, comprising:
 a memory including instructions; and   a DSP coupled to the memory, the DSP configured to execute the instructions to:
 access, by one or more application-specific processing engines, and from the memory of the DSP system, a configurable microcode, wherein the configurable microcode comprises a set of instructions configured to cause the one or more application-specific processing engines to execute a matrix-based arithmetic algorithm; and 
 execute, by the one or more application-specific processing engines, and based on the configurable microcode, the matrix-based arithmetic algorithm, wherein executing the matrix-based arithmetic algorithm comprises:
 receiving, by the one or more application-specific processing engines, one or more input matrices; 
 performing, by the one or more application-specific processing engines, a plurality of computations based on the one or more input matrices by iteratively executing one or more of a predetermined set of arithmetic operations until the execution of the matrix-based arithmetic algorithm is completed; and 
 generating, by the one or more application-specific processing engines, an output corresponding to the completed execution of the matrix-based arithmetic algorithm. 
 
   
     
     
         9 . The DSP system of  claim 8 , wherein the instructions to execute the matrix-based arithmetic algorithm further comprise instructions to execute, by the one or more application-specific processing engines, and based on the configurable microcode, one or more of a Cholesky decomposition algorithm, a general matrix multiplication (GeMM) algorithm, a triangular solve matrix (TRSM) algorithm, or a triangular matrix matrix multiplication (TRMM) algorithm. 
     
     
         10 . The DSP system of  claim 8 , wherein the instructions to iteratively execute one or more of the predetermined set of arithmetic operations further comprise instructions to iteratively execute one or more of a multiplication operation, a reciprocal square root operation, or a reciprocal function operation. 
     
     
         11 . The DSP system of  claim 8 , wherein the one or more application-specific processing engines comprises an arithmetic logic unit (ALU) configured to execute the one or more of the predetermined set of arithmetic operations. 
     
     
         12 . The DSP system of  claim 8 , wherein the configurable microcode is reconfigured, and wherein the matrix-based arithmetic algorithm comprises a first matrix-based arithmetic algorithm, the instructions further comprising instructions to:
 access, by the one or more application-specific processing engines, and from the memory of the DSP system, the reconfigured microcode; and   execute, by the one or more application-specific processing engines, and based on the reconfigured microcode, a second matrix-based arithmetic algorithm, wherein the second matrix-based arithmetic algorithm is different from the first matrix-based arithmetic algorithm.   
     
     
         13 . The DSP system of  claim 8 , wherein the instructions to receive the one or more input matrices further comprise instructions to receive, by the one or more application-specific processing engines, a 2×2 input matrix, a 4×4 input matrix, or an 8×8 input matrix. 
     
     
         14 . The DSP system of  claim 8 , wherein the instructions further comprise instructions to:
 store the output corresponding to the completed execution of the matrix-based arithmetic algorithm to the memory of the DSP system.   
     
     
         15 . A non-transitory computer-readable medium comprising instructions that, when executed by a digital signal processor (DSP) including one or more application-specific processing engines implemented on the DSP, cause the DSP to:
 access, by the one or more application-specific processing engines, and from a memory of the DSP system, a configurable microcode, wherein the configurable microcode comprises a set of instructions configured to cause the one or more application-specific processing engines to execute a matrix-based arithmetic algorithm; and   execute, by the one or more application-specific processing engines, and based on the configurable microcode, the matrix-based arithmetic algorithm, wherein executing the matrix-based arithmetic algorithm comprises:
 receiving, by the one or more application-specific processing engines, one or more input matrices; 
 performing, by the one or more application-specific processing engines, a plurality of computations based on the one or more input matrices by iteratively executing one or more of a predetermined set of arithmetic operations until the execution of the matrix-based arithmetic algorithm is completed; and 
 generating, by the one or more application-specific processing engines, an output corresponding to the completed execution of the matrix-based arithmetic algorithm. 
   
     
     
         16 . The non-transitory computer-readable medium of  claim 15 , wherein the instructions to execute the matrix-based arithmetic algorithm further comprise instructions to execute, by the one or more application-specific processing engines, and based on the configurable microcode, one or more of a Cholesky decomposition algorithm, a general matrix multiplication (GeMM) algorithm, a triangular solve matrix (TRSM) algorithm, or a triangular matrix matrix multiplication (TRMM) algorithm. 
     
     
         17 . The non-transitory computer-readable medium of  claim 15 , wherein the instructions to iteratively execute one or more of the predetermined set of arithmetic operations further comprise instructions to iteratively execute one or more of a multiplication operation, a reciprocal square root operation, or a reciprocal function operation. 
     
     
         18 . The non-transitory computer-readable medium of  claim 15 , wherein the one or more application-specific processing engines comprises an arithmetic logic unit (ALU) configured to execute the one or more of the predetermined set of arithmetic operations. 
     
     
         19 . The non-transitory computer-readable medium of  claim 15 , wherein the configurable microcode is reconfigured, and wherein the matrix-based arithmetic algorithm comprises a first matrix-based arithmetic algorithm, the instructions further comprising instructions to:
 access, by the one or more application-specific processing engines, and from the memory of the DSP system, the reconfigured microcode; and   execute, by the one or more application-specific processing engines, and based on the reconfigured microcode, a second matrix-based arithmetic algorithm, wherein the second matrix-based arithmetic algorithm is different from the first matrix-based arithmetic algorithm.   
     
     
         20 . The non-transitory computer-readable medium of  claim 15 , wherein the instructions to receive the one or more input matrices further comprise instructions to receive, by the one or more application-specific processing engines, a 2×2 input matrix, a 4×4 input matrix, or an 8×8 input matrix.

Join the waitlist — get patent alerts

Track US2024220574A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.