IP Library Granted Patent US 12,632,713
Granted Patent B2
US 12,632,713 · App. 16/474,029 · Granted May 19, 2026

Methods and apparatus to perform tensor operations

Inventors: Horace H. Lau (Mountain View, CA); Prashant Arora (Fremont, CA); Olivia K. Wu (Los Altos, CA); Tony L. Werner (Los Altos, CA); Carey K. Kloss (Los Altos, CA); Amir Khosrowshahi (San Diego, CA); Andrew Yang (Cupertino, CA); Aravind Kalaiah (San Jose, CA); Vijay Anand R. Korthikanti (Milpitas, CA)
Assignee: Intel Corporation
G06N3/063G06F17/16G06N3/04G06N3/08
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 12,632,713
App. No.
16/474,029
Granted
May 19, 2026
Kind
B2
Abstract

A network of matrix processing units (MPUs) is provided on a device, where each MPU is connected to at least one other MPU in the network, and each MPU is to perform matrix multiplication operations. Computer memory stores tensor data and a master control central processing unit (MCC) is provided on the device to receive an instruction from a host device, where the instruction includes one or more tensor operands based on the tensor data. The MCC invokes a set of operations on one or more of the MPUs based on the instruction, where the set of operations includes operations on the tensor operands. A result is generated from the set of operations, the result embodied as a tensor value.

Claims (51)

1 . An apparatus comprising:

interface circuitry to communicate with a network of processing units, wherein each processing unit is connected to at least one other processing unit in the network, and each processing unit is to perform matrix multiplication operations;

a memory comprising high-bandwidth memory (HBM) to store tensor data; and

processor circuitry to:

obtain an instruction received from a host processor coupled to the apparatus, wherein the instruction indicates one or more tensor operands corresponding to the tensor data;

partition the tensor data into a number of partitions based on a number of processing units in the network of processing units;

cause the interface circuitry to distribute the partitioned tensor data from the HBM to memory resources blocks of corresponding processing units in the network of processing units to perform partial matrix multiplication operations on the partitioned tensor data and to output partial tensor operands of the instruction from a processing unit to neighboring processing units of the processing unit in the network of processing units;

invoke a set of operations including pre-arithmetic operations that comprise an addition operation on the tensor data prior to the partial matrix multiplication operations, post-arithmetic operations after the partial matrix multiplication operations, and a matrix-wide operation on the processing units based on the instruction, wherein the set of operations includes operations on the tensor operands, and the matrix-wide operation processes data among elements of a single matrix; and

output a result of the set of operations, wherein the result includes a tensor value to be stored in a location in a memory resource block identified by the instruction.

2 . The apparatus of claim 1 , wherein the processor circuitry is further to cause the memory to store the result, wherein the result is stored as a tensor value in the memory.

3 . The apparatus of claim 1 , wherein the processor circuitry sends the result to a host device, and the host device includes the host processor connected to the processor circuitry.

4 . The apparatus of claim 1 , wherein the processor circuitry is to select a subset of the network of processing units to perform the set of operations.

5 . The apparatus of claim 4 , wherein the subset of processing units includes two or more of the processing units.

6 . The apparatus of claim 1 , wherein the instruction includes a stream of instructions and the processor circuitry is to coordinate data flow and a sequence of operations to be performed by the network of processing units based on the stream of operations.

7 . The apparatus of claim 6 , wherein the sequence of operations includes a sequence of tensor arithmetic operations.

8 . The apparatus of claim 7 , wherein the sequence of tensor operations includes matrix-matrix operations.

9 . The apparatus of claim 1 , wherein the memory includes a memory resource block to be shared by two or more processing units in the network of processing units.

10 . The apparatus of claim 9 , wherein invoking the set of operations includes pointing one or more of the processing units to the memory resource block to access the tensor data.

11 . The apparatus of claim 10 , wherein the set of operations include at least one of a row/column broadcast, block shifting, matrix copy, matrix transpose, and matrix expansion.

12 . The apparatus of claim 9 , wherein the memory includes a memory block to group a plurality of memory resource blocks, and two or more processing units in the network of processing units have read/write access to the plurality of memory resource blocks in the memory block.

13 . The apparatus of claim 1 , further including an on-chip router to route data multi-directionally between components of the apparatus.

14 . The apparatus of claim 1 , wherein the memory includes one or more barrel shifters to shift a matrix described in the memory to target a read or write to a particular row or column of the matrix.

15 . The apparatus of claim 1 , wherein the set of operations includes a max pooling operation.

16 . The apparatus of claim 1 , wherein the set of operations includes performing a Winograd transformation on the operands and performing a matrix multiplication on the operands transformed by the Winograd transformation.

17 . The apparatus of claim 1 , wherein each the tensor operands includes a matrix.

18 . The apparatus of claim 1 , wherein the tensor operands include a particular input matrix and the set of operations includes a matrix dimension shuffle operation to reorder a plurality of dimensions of the particular input matrix.

19 . The apparatus of claim 1 , wherein at least a particular processing unit in the network of processing units includes local memory to store a set of matrix subroutines, and the particular processing unit is to:

translate an operation received from the processor circuitry into a subset of the matrix subroutines; and

perform the operation through execution of the subset of the matrix subroutines.

20 . The apparatus of claim 1 , wherein the set of operations are used to implement one of a set of deep learning models, and the set of deep learning models includes a multilayer perceptron model, a restricted Boltzmann machine model, a deep belief network model, an auto-encoder model, and a convolutional neural network.

21 . A method comprising:

storing tensor data in memory comprising high-bandwidth memory (HBM), wherein the memory is accessible to a network of processing units of an apparatus;

obtaining an instruction from a host processor coupled to the apparatus, wherein the instruction indicates one or more tensor operands corresponding to the tensor data;

partitioning the tensor data into a number of partitions based on a number of processing units in the network of processing units;

distributing the partitioned tensor data from the HBM to memory resource blocks of corresponding processing units in the network of processing units;

causing the processing units to perform partial matrix multiplication operations on the partitioned tensor data and to output partial tensor operands of the instruction from a processing unit to neighboring processing units of the processing unit in the network of processing units; and

generating a result from performance of the partial matrix multiplication operations, the operations including pre-arithmetic operations that comprise an addition operation on the tensor data prior to the partial matrix multiplication operations, post-arithmetic operations after the partial matrix multiplication operations, and a matrix-wide operation, wherein the result includes a tensor value to be stored in a location in a memory resource block identified by the instruction, and the matrix-wide operation processes data among elements of a single matrix.

22 . A system comprising:

a port to connect to a host processor;

a plurality of processing units, wherein each processing unit includes circuitry to perform tensor arithmetic operations;

a memory comprising high-bandwidth memory (HBM) to store tensor data; and

processor circuitry to:

obtain an instruction from the host processor, the instruction indicating one or more tensor operands corresponding to the tensor data;

partition the tensor data into a number of partitions based on a number of processing units in the plurality of processing units;

distribute the partitioned tensor data from the HBM to memory resource blocks of corresponding processing units in the plurality of processing units;

cause the processing units to perform partial matrix multiplication operations on the partitioned tensor data and to output partial tensor operands of the instruction from a processing unit to neighboring processing units of the processing unit in the plurality of processing units;

cause the one or more of the processing units to perform a set of operations including pre-arithmetic operations that comprise an addition operation on the tensor data prior to the partial matrix multiplication operations, post-arithmetic operations after the partial matrix multiplication operations, and a matrix-wide operation based on the instruction, wherein the set of operations include operations on the tensor operands, and the matrix-wide operation processes data among elements of a single matrix; and

return a result of the set of operations to the host processor, wherein the result includes a tensor value to be stored in a location in a memory resource block identified by the instruction.

23 . The system of claim 22 , further including the host processor.

24 . The system of claim 23 , wherein the system is implemented using a system on a chip.

25 . The system of claim 23 , wherein the system is implemented using a server blade.

Continuity (2)
Provisional Application 62440980 · Dec 30, 2016
Related Publication 20190392297A1 · Dec 26, 2019
References Cited (57)
US 8924455B1 · Barman et al. · 2014 [cited by applicant]
US 9779786B1 · Wu · 2017 [cited by examiner]
US 11055063B2 · Goyal · 2021 [cited by examiner]
US 20030022164A1 · Mills, Jr. · 2003 [cited by examiner]
US 20110107060A1 · McAllister et al. · 2011 [cited by applicant]
US 20110307685A1 · Song · 2011 [cited by applicant]
US 20140067735A1 · Yu et al. · 2014 [cited by applicant]
US 20150238148A1 · Georgescu et al. · 2015 [cited by applicant]
US 20150339571A1 · Krizhevsky et al. · 2015 [cited by applicant]
US 20160013773A1 · Dourbal · 2016 [cited by applicant]
US 20160026912A1 · Falcon · 2016 [cited by examiner]
US 20160098633A1 · Min · 2016 [cited by applicant]
US 20160162402A1 · Woolley, Jr. et al. · 2016 [cited by applicant]
US 20160179434A1 · Herrero Abellanas · 2016 [cited by examiner]
US 20160342892A1 · Ross · 2016 [cited by applicant]
US 20160342893A1 · Ross · 2016 [cited by examiner]
US 20170060811A1 · Yang · 2017 [cited by examiner]
US 20170097884A1 · Werner · 2017 [cited by examiner]
US 20170132496A1 · Shoaib · 2017 [cited by examiner]
US 20180041434A1 · Florea · 2018 [cited by examiner]
US 20180074787A1 · Aydonat · 2018 [cited by examiner]
US 20180121786A1 · Narayanaswami · 2018 [cited by examiner]
US 20190392297A1 · Lau et al. · 2019 [cited by applicant]
US 20210182077A1 · Chen · 2021 [cited by examiner]
US 20220245438A1 · Lau et al. · 2022 [cited by applicant]
US 20230222331A1 · Lau et al. · 2023 [cited by applicant]
EP 3343356A1 · 2018 [cited by applicant]
WO 2016186810A1 · 2016 [cited by applicant]
WO WO2018107383A1 · 2018 [cited by examiner]
WO 2018126073A1 · 2018 [cited by applicant]
‘Fast Image Scanning With Deep Max-Pooling Convolutional Neural Networks’: Giusti, 2013, Image processing. [cited by examiner]
Austin W, Ballard G, Kolda TG. Parallel tensor compression for large-scale scientific data. In 2016 IEEE international parallel and distributed processing symposium (IPDPS) May 23, 2016. [cited by examiner]
Akin, Berkin et al., “Data reorganization in memory using 3D-stacked DRAM.” ACM SIGARCH Computer Architecture News 43.3S (Year: 2015). [cited by examiner]
Austin W, Ballard G, Kolda TG. Parallel tensor compression for large-scale scientific data. In 2016 IEEE international parallel and distributed processing symposium (IPDPS) May 23 (Year: 2016). [cited by examiner]
‘Fast Image Scanning With Deep Max-Pooling Convolutional Neural Networks’: Giusti, 2013 (Year: 2013). [cited by examiner]
EPO; Extended European Search Report issued in EP Patent Application No. 17888101.7, dated Jul. 27, 2020; 7 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2017/068826, mailed on May 2, 2018, 13 pages. [cited by applicant]
European Patent Office, “Communication under Rule 71(3) EPC, Intention to grant,” issued in connection with European Patent Application No. 17888101.7-1203 on Oct. 12, 2021, 5 pages. [cited by applicant]
European Patent Office, “European Search Report,” issued in connection with European Patent Application No. 21216800.9-1203 on Apr. 21, 2022, 4 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 21216800.9-1203 on May 3, 2022, 4 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 21216800.9, on Nov. 21, 22, 5 pages. [cited by applicant]
European Patent Office, “European Search Report,” issued in connection with European Application No. 22202120.6, dated Mar. 2, 2023, 8 pages. [cited by applicant]
Nurvitadhi et al., “Hardware Accelerator for Analytics of Sparse Data,” 2016 Design, Automation & Test in Europe Conference & Exhibition, Mar. 14, 2016, pp. 1616-1621, 6 pages. [cited by applicant]
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with PCT No. PCT/US2017/068826, Jul. 2, 2019, 11 pages. [cited by applicant]
European Patent Office, “Communication Pursuant to Article 94(3) EPC,” issued in connection with European Application No. 21216800.9, dated May 23, 2023, 6 pages. [cited by applicant]
European Patent Office, “Communication under Rule 71(3) EPC,” issued in connection with European Application No. 21216800.9, dated Oct. 24, 2024, 9 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 22 202 120.6-1203, dated May 27, 2024, 4 pages. [cited by applicant]
European Patent Office, “Communication pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 21 216 800.9-1203, dated May 10, 2024, 4 pages. [cited by applicant]
European Patent Office, “Communication Pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 21216800.9, dated Nov. 10, 2023, 5 pages. [cited by applicant]
European Patent Office, “Communication Pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 22202120.6-1203, dated Jan. 18, 2024, 4 pages. [cited by applicant]
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 17/728,175, dated Oct. 4, 2023, 36 pages. [cited by applicant]
Chen et al., “Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks”, IEEE Journal of Solid-State Circuits, vol. 52, No. 1, Nov. 8, 2016, 12 pages. [cited by applicant]
Jiang et al., “Matrix Multiplication based on Scalable Macro-Pipelined FPGA Accelerator Architecture”, 2009 IEEE International Conference on Reconfigurable Computing and FPGAs, 2009, pp. 48-53. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 17/728,175, Apr. 10, 2025, 24 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 18/184,651, Apr. 23, 2025, 20 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 17/728,175, Sep. 9, 2025, 26 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 18/184,651, Oct. 22, 2025, 22 pages. [cited by applicant]