IP Library Granted Patent US 12,705,112
Granted Patent B2
US 12,705,112 · App. 17/771,686 · Granted Aug 11, 2026

Distributed placement of linear operators for accelerated deep learning

Inventors: Vladimir Kibardin (Palo Alto, CA); Michael Edwin James (San Carlos, CA); Michael Morrison (Sunnyvale, CA); Sean Lie (Los Altos, CA); Gary R. Lauterbach (Los Altos, CA); Stanislav Funiak (St Lucia, AU)
Assignee: Cerebras Systems Inc.
G06F9/54G06F9/5027G06F18/214G06N3/04G06N3/063
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,705,112
App. No.
17/771,686
Granted
Aug 11, 2026
Kind
B2
Abstract

Techniques in distributed placement of linear operators for accelerated deep learning provide improvements in one or more of accuracy, performance, and energy efficiency. An array of processing elements comprising a portion of a neural network accelerator performs flow-based computations on wavelets of data. Each processing element comprises a compute element to execute programmed instructions using the data and a router to route the wavelets. The routing is in accordance with virtual channel specifiers of the wavelets and controlled by routing configuration information of the router. A software stack determines distributed placement of linear operators based on a description of a neural network. The determined placement is used to configure the routers including usage of the respective colors. The determined placement is used to configure the compute elements including the respective programmed instructions each is configured to execute.

Claims (48)

1 . A method comprising:

extracting a model from a neural network description, wherein the extracted model comprises a plurality of nodes;

identifying, based on the extracted model, an element from a library of executable kernel modules, the identified element corresponding to at least one node of the plurality of nodes in the extracted model, wherein the identified element is associated with executable code;

determining accelerator configuration information usable to configure a deep learning accelerator to provide a trained model, wherein:

the deep learning accelerator comprises a fabric and a plurality of processing elements to communicate packets with each other via the fabric in accordance with a plurality of communication pathways identifiable by respective virtual channel identifiers;

each of the plurality of processing elements comprises a respective compute element to execute programmed instructions based at least in part on respective compute element configuration information;

the accelerator configuration information comprises the respective compute element configuration information; and

the respective compute element configuration information comprises the executable code; and

configuring the deep learning accelerator based on the accelerator configuration information.

2 . The method of claim 1 , wherein the plurality of processing elements is a plurality of logical processing elements, a target wafer comprises a plurality of physical processing elements each having a respective physical location in a context of the target wafer, and each of the plurality of logical processing elements has a correspondence to a respective one of the plurality of physical processing elements.

3 . The method of claim 2 , wherein the determining comprises assigning computations associated with respective nodes of the extracted model to respective portions of the plurality of logical processing elements in accordance with the respective physical locations.

4 . The method of claim 3 , wherein the determining comprises identifying a region of physically contiguous ones of the plurality of physical processing elements, cutting the identified region orthogonal to a boundary of the identified region into two sub-regions, evaluating each of the sub-regions with respect to a placement of a delay buffer, and responsive to the evaluating ascertaining that the placement is a better one for the delay buffer, indicating that the placement is a best placement for the delay buffer.

5 . The method of claim 3 , wherein the determining further comprises performing a first routing of all communication paths between a plurality of regions of the plurality of physical processing elements, evaluating a heatmap in accordance with the first routing, inserting obstacles responsive to the heatmap, and performing a second routing of all the communication paths.

6 . The method of claim 3 , wherein the determining further comprises evaluating a wire cost based on Manhattan distance.

7 . The method of claim 6 , wherein the wire cost accounts for bandwidth of communication between the computations.

8 . The method of claim 1 , wherein each of the plurality of compute elements comprises respective one or more registers and the respective compute element configuration information comprises respective settings for at least a portion of the respective registers.

9 . The method of claim 1 , wherein each of the plurality of compute elements is to store programmed instructions for execution and the respective compute element configuration information comprises respective instruction code corresponding to the stored programmed instructions of the respective compute element.

10 . The method of claim 1 , wherein each of the executable kernel modules is associated with a respective template code generator enabled to generate the executable code associated with the respective executable kernel module.

11 . The method of claim 10 , wherein at least one of the template code generators is to accept arguments specifying dimensions, measured in numbers of the plurality of processing elements, to generate the executable code for.

12 . The method of claim 1 , wherein each of the executable kernel modules is associated with a respective cost model indicating any one or more of memory, bandwidth, and compute utilization used by the respective executable kernel module.

13 . The method of claim 1 , wherein one or more of the executable kernel modules comprise a hand-written microcode element.

14 . The method of claim 1 , wherein one or more of the executable kernel modules are associated with a respective utilization function that monotonically decreases with larger areas.

15 . The method of claim 1 , wherein at least one of the executable kernel modules is associated with a performance model that is usable to determine a shape of a compute region for the at least one executable kernel module.

16 . The method of claim 1 , further comprising evaluating one or more results of the determining in accordance with one or more predetermined cost criteria to produce one or more goal-evaluation metrics, conditionally altering one or more meta-parameters that the determining is based at least in part on wherein the conditionally altering is dependent on at least one of the one or more goal-evaluation metrics being less than a respective predetermined threshold, and repeating at least a portion of the determining in accordance with the altered meta-parameters.

17 . A non-transitory computer-readable medium comprising one or more instructions that, when executed by one or more processors, cause the one or more processors to perform actions comprising:

extracting a model from a neural network description, wherein the extracted model comprises a plurality of nodes;

identifying, based on the extracted model, an element from a library of executable kernel modules, the identified element corresponding to at least one node of the plurality of nodes in the extracted model, wherein the identified element is associated with executable code;

determining accelerator configuration information usable to configure a deep learning accelerator to provide a trained model, wherein:

the deep learning accelerator comprises a fabric and a plurality of processing elements to communicate packets with each other via the fabric in accordance with a plurality of communication pathways identifiable by respective virtual channel identifiers;

each of the plurality of processing elements comprises a respective compute element to execute programmed instructions based at least in part on respective compute element configuration information;

the accelerator configuration information comprises the respective compute element configuration information; and

the respective compute element configuration information comprises the executable code; and

configuring the deep learning accelerator based on the accelerator configuration information.

18 . The non-transitory computer-readable medium of claim 17 , wherein the plurality of processing elements is a plurality of logical processing elements, a target wafer comprises a plurality of physical processing elements each having a respective physical location in a context of the target wafer, and each of the plurality of logical processing elements has a correspondence to a respective one of the plurality of physical processing elements.

19 . The non-transitory computer-readable medium of claim 18 , wherein the determining comprises assigning computations associated with respective nodes of the extracted model to respective portions of the plurality of logical processing elements in accordance with the respective physical locations.

20 . The non-transitory computer-readable medium of claim 19 , wherein the determining comprises identifying a region of physically contiguous ones of the plurality of physical processing elements, cutting the identified region orthogonal to a boundary of the identified region into two sub-regions, evaluating each of the sub-regions with respect to a placement of a delay buffer, and responsive to the evaluating ascertaining that the placement is a better one for the delay buffer, indicating that the placement is a best placement for the delay buffer.

21 . The non-transitory computer-readable medium of claim 19 , wherein the determining further comprises performing a first routing of all communication paths between a plurality of regions of the plurality of physical processing elements, evaluating a heatmap in accordance with the first routing, inserting obstacles responsive to the heatmap, and performing a second routing of all the communication paths.

22 . The non-transitory computer-readable medium of claim 19 , wherein the determining further comprises evaluating a wire cost based on Manhattan distance.

23 . The non-transitory computer-readable medium of claim 22 , wherein the wire cost accounts for bandwidth of communication between the computations.

24 . The non-transitory computer-readable medium of claim 17 , wherein each of the plurality of compute elements comprises a respective one or more registers and the respective compute element configuration information comprises respective settings for at least a portion of the respective registers.

25 . The non-transitory computer-readable medium of claim 17 , wherein each of the plurality of compute elements is to store programmed instructions for execution and the respective compute element configuration information comprises respective instruction code corresponding to the stored programmed instructions of the respective compute element.

26 . The non-transitory computer-readable medium of claim 17 , wherein each of the executable kernel modules is associated with a respective template code generator enabled to generate the executable code associated with the respective executable kernel module.

27 . The non-transitory computer-readable medium of claim 26 , wherein at least one of the template code generators is enabled to accept arguments specifying dimensions, measured in numbers of the plurality of processing elements, to generate the executable code for.

28 . The non-transitory computer-readable medium of claim 17 , wherein each of the executable kernel modules is associated with a respective cost model indicating any one or more of memory, bandwidth, and compute utilization used by the respective executable kernel module.

29 . The non-transitory computer-readable medium of claim 17 , wherein one or more of the executable kernel modules comprise a hand-written microcode element.

30 . The non-transitory computer-readable medium of claim 17 , wherein one or more of the executable kernel modules are associated with a respective utilization function that monotonically decreases with larger areas.

31 . The non-transitory computer-readable medium of claim 17 , wherein at least one of the executable kernel modules is associated with a performance model that is usable to determine a shape of a compute region for the at least one executable kernel module.

32 . The non-transitory computer-readable medium of claim 17 , further comprising evaluating one or more results of the determining in accordance with one or more predetermined cost criteria to produce one or more goal-evaluation metrics, conditionally altering one or more meta-parameters that the determining is based at least in part on wherein the conditionally altering is dependent on at least one of the one or more goal-evaluation metrics being less than a respective predetermined threshold, and repeating at least a portion of the determining in accordance with the altered meta-parameters.

Assignments (2)
SECURITY INTEREST Recorded Jun 18, 2026
From: CEREBRAS SYSTEMS INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS THE COLLATERAL AGENT
Reel/Frame 075845/0844 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2022
From: KIBARDIN, VLADIMIR; JAMES, MICHAEL EDWIN; MORRISON, MICHAEL; LIE, SEAN; LAUTERBACH, GARY R.; FUNIAK, STANISLAV
To: CEREBRAS SYSTEMS INC.
Reel/Frame 061097/0245 →
Continuity (3)
Provisional Application 62929055 · Oct 31, 2019
Provisional Application 62928198 · Oct 30, 2019
Related Publication 20220374288A1 · Nov 24, 2022
References Cited (38)
US 7986629B1 · Ferguson et al. · 2011 [cited by applicant]
US 10460066B1 · Posser · 2019 [cited by examiner]
US 11256985B2 · Regev · 2022 [cited by applicant]
US 11328208B2 · Lie · 2022 [cited by examiner]
US 11580376B2 · Hwang et al. · 2023 [cited by applicant]
US 11809953B1 · Jacob · 2023 [cited by examiner]
US 11934945B2 · Lie et al. · 2024 [cited by applicant]
US 12165061B2 · Kim · 2024 [cited by examiner]
US 20050131660A1 · Yadegar et al. · 2005 [cited by applicant]
US 20050220094A1 · Parker et al. · 2005 [cited by applicant]
US 20150302295A1 · Rivera et al. · 2015 [cited by applicant]
US 20150304797A1 · Rhoads et al. · 2015 [cited by applicant]
US 20150324684A1 · Alvarez-Icaza Rivera · 2015 [cited by examiner]
US 20170295061A1 · Wittenschlaeger · 2017 [cited by applicant]
US 20180189642A1 · Boesch et al. · 2018 [cited by applicant]
US 20180227180A1 · Rao · 2018 [cited by examiner]
US 20180314941A1 · Lie et al. · 2018 [cited by applicant]
US 20190102338A1 · Tang et al. · 2019 [cited by applicant]
US 20190258919A1 · Lie et al. · 2019 [cited by applicant]
US 20230071424A1 · Kibardin et al. · 2023 [cited by applicant]
US 20230125522A1 · Kibardin et al. · 2023 [cited by applicant]
WO 2012044432A1 · 2012 [cited by applicant]
WO WO2018193354A1 · 2018 [cited by examiner]
WO 2021074795A1 · 2021 [cited by applicant]
WO 2021074865A1 · 2021 [cited by applicant]
WO 2021074867A1 · 2021 [cited by applicant]
WO 2021084485A1 · 2021 [cited by applicant]
WO 2021084505A1 · 2021 [cited by applicant]
WO 2021084506A1 · 2021 [cited by applicant]
International Search Report in PCT/IB2020/060232 (the international stage of the instant case), Mar. 1, 2021, 4 pages. [cited by applicant]
Written Opinion of the International Searching Authority in PCT/IB2020/060232 (the international stage of the instant case), Mar. 1, 2021, 5 pages. [cited by applicant]
International Preliminary Report On Patentability (Chapter II) in PCT/IB2020/060232 (the International stage of the instant case), Jan. 28, 2022, 5 pages. [cited by applicant]
Cotter F. et al., Deep Learning in Thew a Velet Domain, arXiv: 1811.06115v1 [cs.CV]. pp. 1-5. Nov. 14, 2018. [cited by applicant]
Mohammed Amine Meghabber et al., A Flexible Network on-Chip Router for Data-Flow Monitoring⋅, The 5th International Conference on Electrical Engineering—Boumerdes (ICEE-B), Oct. 31, 2017, 6 pages. [cited by applicant]
Nithya Narayanamurthy et al: “Evolving bio plausible design with heterogeneous Noc”, The 15th International Conference on Advanced Communications Technology—ICACT2013, Jan. 27, 2013, (pp. 451-456), 6 pages. [cited by applicant]
Ahmad Shawahna et al., ‘FPGA-based Accelerators of Deep Learning Networks for Learning and Classification: A Review’, IEEE Access, vol. 7, Dec. 28, 2018, pp. 7825-7828. [cited by applicant]
Xinyu You et al., “Toward Packet Routing with Fully-distributed Multi-agent Deep Reinforcement Learning”, arXiv:1905.03494v1, May 9, 2019 [retrieved on Jan. 27, 2021]. Retrieved from <https://arxiv.org/pdf/1905.03494v1.… [cited by applicant]
Yiping Dong et al: “Network on Chip architecture for BP neural network”, Communications, Circuits and Systems, 2008. ICCCAS 2008. International Conference On, IEEE, Piscataway, NJ, USA, May 25, 2008 (May 25, 2008), pp. … [cited by applicant]