IP Library Granted Patent US 10,970,076
Granted Patent B2
US 10,970,076 · App. 16/131,376 · Granted Apr 6, 2021

Systems and methods for performing instructions specifying ternary tile logic operations

Inventors: Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Christopher J. Hughes (Santa Clara, CA); Bret Toll (Hillsboro, OR); Dan Baum (Haifa, IL); Raanan Sade (Kibutz Sarid, IL); Robert Valentine (Kiryat Tivon, IL); Mark J. Charney (Lexington, MA); Alexander F. Heinecke (San Jose, CA)
Assignee: Intel Corporation
G06F9/3802G06F9/3016G06F9/30018G06F17/16
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 10,970,076
App. No.
16/131,376
Granted
Apr 6, 2021
Kind
B2
Abstract

Disclosed embodiments relate to systems and methods for performing instructions specifying ternary tile operations. In one example, a processor includes fetch and decode circuitry to fetch and decode an instruction specifying a ternary tile operation, and locations of destination and first, second, and third source matrices, each of the matrices having M rows by N columns; and execution circuitry to respond to the decoded instruction by, for each equal-sized group of K elements of the specified first, second, and third source matrices, generate K results by performing the ternary tile operation in parallel on K corresponding elements of the specified first, second, and third source matrices, and store each of the K results to a corresponding element of the specified destination matrix, wherein corresponding elements of the specified source and destination matrices occupy a same relative position within their associated matrix.

Claims (33)

1. A processor comprising:

a plurality of vector registers;

a matrix operations accelerator comprising, separate from the plurality of vector registers, a first two-dimensional tile register to store a first source matrix, a second two-dimensional tile register to store a second source matrix, and a third two-dimensional tile register to store a third source matrix;

decode circuitry to decode an instruction specifying a ternary tile operation, a location of a destination matrix, the first two-dimensional tile register to store the first source matrix, the second two-dimensional tile register to store the second source matrix, and the third two-dimensional tile register to store the third source matrix into a decoded instruction; and

execution circuitry to respond to the decoded instruction to, for each equal-sized group of K elements of the specified first, second, and third source matrices, cause the matrix operations accelerator to generate K results by performing the ternary tile operation on K corresponding elements of the specified first, second, and third source matrices, and store each of the K results to a corresponding element of the specified destination matrix, wherein corresponding elements of the specified source and destination matrices occupy a same relative position within their associated matrices.

2. The processor of claim 1 , wherein each of the K elements in the equal-sized groups of elements of the specified first, second and third source matrices has an element width of one bit, and wherein the ternary tile operation is a bitwise operation.

3. The processor of claim 1 , wherein each of the matrices have M rows by N columns and each of the equal-sized groups of elements of the specified first, second, and third source matrices is an O by P submatrix, wherein M is an integer multiple of O and N is an integer multiple of P.

4. The processor of claim 1 , wherein each of the equal-sized groups of K elements of the specified first, second, and third source matrices has a total width that equals a width of a parallel execution datapath of the execution circuitry.

5. The processor of claim 1 , wherein the first two-dimensional tile register to store the first source matrix is also the location of the destination matrix to which the K generated results are stored.

6. The processor of claim 1 , wherein the ternary tile operation is a logical operation.

7. The processor of claim 6 , wherein the instruction comprises an immediate that specifies the logical operation from a plurality of logical operations.

8. The processor of claim 1 , wherein the instruction comprises an immediate that specifies the ternary tile operation from a plurality of ternary tile operations.

9. A method comprising:

decoding, using decode circuitry of a processor comprising a plurality of vector registers and a matrix operations accelerator comprising, separate from the plurality of vector registers, a first two-dimensional tile register storing a first source matrix, a second two-dimensional tile register storing a second source matrix, and a third two-dimensional tile register storing a third source matrix, an instruction specifying a ternary tile operation, a location of a destination matrix, and the first two-dimensional tile register storing the first source matrix, the second two-dimensional tile register storing the second source matrix, and the third two-dimensional tile register storing the third source matrix into a decoded instruction; and

executing the decoded instruction with execution circuitry of the processor to, for each equal-sized group of K elements of the specified first, second, and third source matrices, cause the matrix operations accelerator to generate K results by performing the ternary tile operation in parallel on K corresponding elements of the specified first, second, and third source matrices, and store each of the K results to a corresponding element of the specified destination matrix, wherein corresponding elements of the specified source and destination matrices occupy a same relative position within their associated matrices.

10. The method of claim 9 , wherein each of the K elements in the equal-sized groups of elements of the specified first, second and third source matrices has an element width of one bit, and wherein the ternary tile operation is a bitwise operation.

11. The method of claim 9 , wherein each of the matrices have M rows by N columns and each of the equal-sized groups of elements of the specified first, second, and third source matrices is an O by P submatrix, wherein M is an integer multiple of O and N is an integer multiple of P.

12. The method of claim 9 , wherein each of the equal-sized groups of K elements of the specified first, second, and third source matrices has a total width that equals a width of a parallel execution datapath of the execution circuitry.

13. The method of claim 9 , wherein the first two-dimensional tile register to store the first source matrix is also the location of the destination matrix to which the K generated results are stored.

14. The method of claim 9 , wherein the ternary tile operation is a logical operation.

15. The method of claim 14 , wherein the instruction comprises an immediate that specifies the logical operation from a plurality of logical operations.

16. The method of claim 9 , wherein the instruction comprises an immediate that specifies the ternary tile operation from a plurality of ternary tile operations.

17. A system comprising:

a matrix operations accelerator comprising, separate from a plurality of vector registers, a first two-dimensional tile register to store a first source matrix, a second two-dimensional tile register to store a second source matrix, and a third two-dimensional tile register to store a third source matrix; and

a processor comprising:

the plurality of vector registers;

decode circuitry to decode an instruction specifying a ternary tile operation, a location of a destination matrix, the first two-dimensional tile register to store the first source matrix, the second two-dimensional tile register to store the second source matrix, and the third two-dimensional tile register to store the third source matrix into a decoded instruction, and

execution circuitry to respond to the decoded instruction to, for each equal-sized group of K elements of the specified first, second, and third source matrices, cause the matrix operations accelerator to generate K results by performing the ternary tile operation in parallel on K corresponding elements of the specified first, second, and third source matrices, and store each of the K results to a corresponding element of the specified destination matrix, wherein corresponding elements of the specified source and destination matrices occupy a same relative position within their associated matrices.

18. The system of claim 17 , wherein each of the K elements in the equal-sized groups of elements of the specified first, second and third source matrices has an element width of one bit, and wherein the ternary tile operation is a bitwise operation.

19. The system of claim 17 , wherein the ternary tile operation is a logical operation.

20. The system of claim 19 , wherein the instruction comprises an immediate that specifies the logical operation from a plurality of logical operations.

21. The system of claim 17 , wherein the instruction comprises an immediate that specifies the ternary tile operation from a plurality of ternary tile operations.

22. The system of claim 17 , wherein the first two-dimensional tile register to store the first source matrix is also the location of the destination matrix to which the K generated results are stored.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2018
From: OULD-AHMED-VALL, ELMOUSTAPHA; HUGHES, CHRISTOPHER J.; TOLL, BRET; BAUM, DAN; SADE, RAANAN; VALENTINE, ROBERT; CHARNEY, MARK J.; HEINECKE, ALEXANDER F.
To: INTEL CORPORATION
Reel/Frame 046881/0627 →
Continuity (1)
Related Publication 20190042260A1 · Feb 7, 2019
Cited By (10)
US 12,236,242 US 12,260,213 US 12,282,525 US 12,282,773 US 12,293,186 US 12,314,717 US 12,474,928 US 12,536,020 US 12,650,839 US 12,699,747