IP Library › Granted Patent US 11,769,041
Granted Patent B2
US 11,769,041 · App. 16/177,218 · Granted Sep 26, 2023

Low latency long short-term memory inference with sequence interleaving

Inventors: Sateesh Lagudu (Hyderabad, IN); Lei Zhang (Richmond Hill, CA); Allen H. Rush (Danville, CA)
Assignees: Advanced Micro Devices, Inc.; ATI Technologies ULC
G06N3/063G06F7/5443G06F17/16G06N20/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 11,769,041
App. No.
16/177,218
Granted
Sep 26, 2023
Kind
B2
Abstract

Systems, apparatuses, and methods for implementing a low latency long short-term memory (LSTM) machine learning engine using sequence interleaving techniques are disclosed. A computing system includes at least a host processing unit, a machine learning engine, and a memory. The host processing unit detects a plurality of sequences which will be processed by the machine learning engine. The host processing unit interleaves the sequences into data blocks and stores the data blocks in the memory. When the machine learning engine receives a given data block, the machine learning engine performs, in parallel, a plurality of matrix multiplication operations on the plurality of sequences in the given data block and a plurality of coefficients. Then, the outputs of the matrix multiplication operations are coupled to one or more LSTM layers.

Claims (42)

1. A system comprising:

a processing unit; and

a machine learning engine comprising a plurality of matrix multiplication units and one or more long short-term memory (LSTM) layers;

wherein the processing unit comprises circuitry configured to:

detect two or more sequences, stored in a memory device, that will be processed by the machine learning engine;

interleave the two or more sequences together into one or more data blocks, such that each data block comprises samples from each of the two or more sequences; and

provide the one or more data blocks to the machine learning engine;

wherein the machine learning engine comprises circuitry configured to:

receive a given data block of the one or more data blocks;

perform, in parallel by circuitry of the matrix multiplication units, a plurality of matrix multiplication operations on a plurality of sequences from the given data block and a plurality of coefficients to generate outputs; and

convey the outputs from the plurality of matrix multiplication units to the one or more LSTM layers.

2. The system as recited in claim 1 , wherein each sequence comprises a plurality of samples.

3. The system as recited in claim 1 , wherein the plurality of coefficients are stored in an N×(N+M) matrix, wherein N and M are positive integers greater than one.

4. The system as recited in claim 3 , wherein the given data block is stored in an N-sample array.

5. The system as recited in claim 4 , wherein N is scalable based on a local memory bus width, a number of multiplier-accumulator units, and an availability of LSTM cells.

6. The system as recited in claim 1 , wherein the plurality of matrix multiplication operations comprise a same set of N coefficients being multiplied by different sequences of the plurality of sequences, wherein N is a positive integer greater than one.

7. The system as recited in claim 6 , wherein the machine learning engine implements a recurrent neural network.

8. A method comprising:

detecting, by a processing unit comprising circuitry, two or more sequences, stored in a memory device, that will be processed by a machine learning engine;

interleaving, by the processing unit, the two or more sequences together into one or more data blocks, such that each data block comprises samples from the two or more sequences;

providing the one or more data blocks to the machine learning engine;

receiving, by the machine learning engine, a given data block of the one or more data blocks;

performing, by circuitry of a plurality of matrix multiplication units of the machine learning engine, a plurality of matrix multiplication operations in parallel on a plurality of sequences from the given data block and a plurality of coefficients to generate outputs; and

conveying, by the machine learning engine, the outputs from the plurality of matrix multiplication units to one or more long short-term memory (LSTM) layers.

9. The method as recited in claim 8 , wherein each sequence comprises a plurality of samples.

10. The method as recited in claim 8 , wherein the plurality of coefficients are stored in an N×(N+M) matrix, wherein N and M are positive integers greater than one.

11. The method as recited in claim 10 , wherein the given data block is stored in an N-sample array.

12. The method as recited in claim 11 , wherein N is scalable based on a local memory bus width, a number of multiplier-accumulator units, and an availability of LSTM cells.

13. The method as recited in claim 8 , wherein the plurality of matrix multiplication operations comprise a same set of N coefficients being multiplied by different sequences of the plurality of sequences, wherein N is a positive integer greater than one.

14. The method as recited in claim 13 , wherein the machine learning engine implements a recurrent neural network.

15. An apparatus comprising:

a machine learning engine comprising circuitry of a plurality of matrix multiplication units; and

a memory device coupled to the machine learning engine;

wherein the machine learning engine comprises circuitry configured to:

receive a given data block comprising a plurality of sequences interleaved together;

perform, in parallel by circuitry of the matrix multiplication units, a plurality of matrix multiplication operations on the plurality of sequences from the given data block and a plurality of coefficients to generate outputs; and

convey the outputs from the plurality of matrix multiplication units to one or more long short-term memory (LSTM) layers.

16. The apparatus as recited in claim 15 , wherein each sequence comprises a plurality of samples.

17. The apparatus as recited in claim 15 , wherein the plurality of coefficients are stored in an N×(N+M) matrix, wherein N and M are positive integers greater than one.

18. The apparatus as recited in claim 17 , wherein the given data block is stored in an N-sample array.

19. The apparatus as recited in claim 18 , wherein N is scalable based on a local memory bus width, a number of multiplier-accumulator units, and an availability of LSTM cells.

20. The apparatus as recited in claim 15 , wherein the plurality of matrix multiplication operations comprise a same set of N coefficients being multiplied by different sequences of the plurality of sequences, wherein N is a positive integer greater than one.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2018
From: ZHANG, LEI
To: ATI TECHNOLOGIES ULC
Reel/Frame 047374/0913 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2018
From: LAGUDU, SATEESH; RUSH, ALLEN H.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 047374/0938 →
Continuity (1)
Related Publication 20200134432A1 · Apr 30, 2020