IP Library Granted Patent US 11,893,424
Granted Patent B2
US 11,893,424 · App. 17/582,925 · Granted Feb 6, 2024

Training a neural network using a non-homogenous set of reconfigurable processors

Inventors: Martin Russell Raumann (San Leandro, CA); Qi Zheng (Fremont, CA); Bandish B. Shah (San Francisco, CA); Ravinder Kumar (Fremont, CA); Kin Hing Leung (Cupertino, CA); Sumti Jairath (Santa Clara, CA); Gregory Frederick Grohoski (Bee Cave, TX)
Assignee: SambaNova Systems, Inc.
G06F9/5077G06F9/45558G06F9/5027G06N3/02G06F2009/4557
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,893,424
App. No.
17/582,925
Granted
Feb 6, 2024
Kind
B2
Abstract

A system for training parameters of a neural network includes a processing node with a processor reconfigurable at a first level of configuration granularity and a controller reconfigurable at a finer level of configuration granularity. The processor is configured to execute a first dataflow segment of the neural network with training data to generate a predicted output value using a set of neural network parameters, calculate a first intermediate result for a parameter based on the predicted output value, a target output value, and a parameter gradient, and provide the first intermediate result to the controller. The controller is configured to receive a second intermediate result over a network, and execute a second dataflow segment, dependent upon the first intermediate result and the second intermediate result, to generate a third intermediate result indicative of an update of the parameter.

Claims (44)

1. A system for training parameters of a neural network using training data samples that include a plurality of input values and a target output value, comprising:

a plurality of processing nodes including a processing node and a second processing node, each processing node of the plurality of processing nodes includes:

a respective plurality of processors reconfigurable at a first level of configuration granularity;

a respective smart network interface controller comprising a respective controller configurable at a second level of configuration granularity; and

a respective interconnect fabric communicatively coupling processors of the respective plurality of processors to the respective smart network interface controller;

the processing node comprising a plurality of processors reconfigurable at the first level of configuration granularity, including a processor and a smart network interface controller comprising a controller reconfigurable at the second level of configuration granularity finer than the first level of configuration granularity, the controller communicatively coupled to the processor through an intra-node communication link, and to a network interface controller on the second processing node through a network;

the processor configured by a host system to execute a first dataflow segment of the neural network having one or more dataflow pipelines to generate a predicted output value using a first subset of the plurality of input values and a set of neural network parameters, calculate a first intermediate result for a parameter of the set of neural network parameters based on the predicted output value and the target output value, and provide the first intermediate result to the controller;

wherein the processor comprising a Coarse-Grained Reconfigurable Architecture (CGRA); and

the controller configured by the host system to receive a second intermediate result from the network interface controller though the network, execute a second dataflow segment, dependent upon the first intermediate result and the second intermediate result, to generate a third intermediate result indicative of an update of the parameter of the set of neural network parameters;

wherein the controller is configured to produce the third intermediate result using a collective methodology;

wherein the respective smart network interface controllers of the plurality of processing nodes are connected in a ring configuration and the collective methodology comprises a uni-directional ring all-reduce; and

wherein none of the first intermediate result, the second intermediate result, nor the third intermediate result, pass through the host system.

2. The system of claim 1 , the processing node further comprising: an interconnect fabric, including the intra-node communication link, communicatively coupling processors of the plurality of processors to the controller.

3. The system of claim 2 , the system further comprising the host system.

4. The system of claim 2 , the controller further configured to receive respective second intermediate results, including the second intermediate result from the second processing node, from the respective smart network interface controllers of the plurality of processing nodes and to add the first intermediate result and the second intermediate results to produce the third intermediate result.

5. The system of claim 1 , the controller further configured to use the third intermediate result to update the parameter of the set of neural network parameters to create an updated parameter and provide the updated parameter to the processor.

6. The system of claim 5 , the processor further configured to generate an updated predicted output value using a second subset of the plurality of input values and an updated set of neural network parameters that includes the updated parameter.

7. The system of claim 1 , the controller comprising a Field-Programmable Gate Array (FPGA).

8. A method for training parameters of a neural network using training data samples that include a plurality of input values and a target output value, the method utilizing a host system communicatively coupled to a processing node that includes a processor reconfigurable at a first level of configuration granularity and a controller reconfigurable at a second level of configuration granularity finer than the first level of configuration granularity, the controller communicatively coupled to the processor through an intra-node communication link, and to a network interface controller on a second processing node through a network, the method comprising:

configuring the processor at the first level of configuration granularity by the host system to execute a first dataflow segment of the neural network having one or more dataflow pipelines;

configuring the controller at the second level of configuration granularity by the host system to execute a second dataflow segment dependent upon a first intermediate result and a second intermediate result;

generating, using the one or more dataflow pipelines, a predicted output value using a first subset of the plurality of input values and a set of neural network parameters;

calculating, using the one or more dataflow pipelines, the first intermediate result for a parameter of the set of neural network parameters based on the predicted output value and the target output value;

providing, by the processor, the first intermediate result to the controller;

receiving respective second intermediate results, including the second intermediate result from the second processing node, from respective smart network interface controllers of a plurality of processing nodes; and

generating, using a collective methodology at respective controllers, a third intermediate result by adding the first intermediate result and the second intermediate results, the third intermediate result indicative of an update of the parameter of the set of neural network parameters;

wherein the respective smart network interface controllers of the plurality of processing nodes are connected in a ring configuration and the collective methodology comprises a uni-directional ring all-reduce; and

wherein none of the first intermediate result, the second intermediate result, nor the third intermediate result, pass through the host system.

9. The method of claim 8 , further comprising:

updating a parameter of the set of neural network parameters using the third intermediate result to create an updated set of neural network parameters; and

generating an updated predicted output value using a second subset of the plurality of input values and the updated set of neural network parameters.

10. One or more non-transitory computer-readable media having one or more configuration files stored thereon, that when used by a host system to configure a processing node that includes a processor reconfigurable at a first level of configuration granularity and a controller reconfigurable at a second level of configuration granularity finer than the first level of configuration granularity, the controller communicatively coupled to the processor through an intra-node communication link, and to a network interface controller on a second processing node through a network, cause a method for training parameters of a neural network using training data samples that include a plurality of input values and a target output value to be performed, the method comprising:

configuring the processor at the first level of configuration granularity by the host system to execute a first dataflow segment of the neural network having one or more dataflow pipelines;

configuring the controller at the second level of configuration granularity by the host system to execute a second dataflow segment dependent upon a first intermediate result and a second intermediate result;

generating, using the one or more dataflow pipelines, a predicted output value using a first subset of the plurality of input values and a set of neural network parameters;

calculating, using the one or more dataflow pipelines, the first intermediate result for a parameter of the set of neural network parameters based on the predicted output value and the target output value;

providing, by the processor, the first intermediate result to the controller;

receiving respective second intermediate results, including the second intermediate result from the second processing node, from respective smart network interface controllers of a plurality of processing nodes; and

generating, using a collective methodology at respective controllers, a third intermediate result by adding the first intermediate result and the second intermediate results, the third intermediate result indicative of an update of the parameter of the set of neural network parameters;

wherein the respective smart network interface controllers of the plurality of processing nodes are connected in a ring configuration and the collective methodology comprises a uni-directional ring all-reduce; and

wherein none of the first intermediate result, the second intermediate result, nor the third intermediate result, pass through the host system.

11. The one or more non-transitory computer-readable media of claim 10 , the method further comprising:

updating a parameter of the set of neural network parameters using the third intermediate result to create an updated set of neural network parameters; and

generating an updated predicted output value using a second subset of the plurality of input values and the updated set of neural network parameters.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2022
From: RAUMANN, MARTIN RUSSELL; ZHENG, QI; SHAH, BANDISH B.; KUMAR, RAVINDER; LEUNG, KIN HING; JAIRATH, SUMTI; GROHOSKI, GREGORY FREDERICK
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 058748/0407 →
Continuity (3)
Continuation 17379924 · Jul 19, 2021
Continuation In Part 17127929 · Dec 18, 2020
Related Publication 20220197714A1 · Jun 23, 2022
Cited By (4)
US 12,210,468 US 12,229,057 US 12,380,041 US 12,450,167