IP Library Granted Patent US 12,468,924
Granted Patent B2
US 12,468,924 · App. 17/953,991 · Granted Nov 11, 2025

Parallel computing scheme generation for neural networks

Inventors: Chong Li (Boulogne Billancourt, FR); Thibaut Tachon (Boulogne Billancourt, FR); Hongxing Wang (Shenzhen, CN); Kelun Chai (Boulogne Billancourt, FR); Chang Liu (Shenzhen, CN)
Assignee: Huawei Technologies Co., Ltd.
G06N3/06
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,468,924
App. No.
17/953,991
Granted
Nov 11, 2025
Kind
B2
Abstract

A device receives a computation graph and transforms the computation graph into a dataflow graph comprising recursive subgraphs. Each recursive subgraph comprises a tuple of another recursive subgraph and an operator node, or an empty graph. The device determines a number of partitioning recursions based on a number of parallel computing devices. For each partitioning recursion, the device determines costs corresponding to operator nodes, determines a processing order of the recursive subgraphs, and processes the recursive subgraphs. To process a recursive subgraph, the device selects a partitioning axis for tensors associated with an operator node of the recursive subgraph. The device outputs a partitioning scheme comprising partitioning axes for each tensor associated with the operator nodes.

Claims (46)

1 . A device for determining a parallel computation scheme for a neural network, the device comprising at least one processor configured to:

receive a computation graph for the neural network;

transform the computation graph into a recursive dataflow graph comprising a plurality of recursive subgraphs, wherein each of the recursive subgraphs is respectively a tuple of another of the recursive subgraphs and an operator node;

determine a number of partitioning recursions based on a number of parallel computing devices;

for each of the partitioning recursions:

determine a plurality of costs corresponding to a plurality of operator nodes associated with the recursive dataflow graph,

determine a processing order of the plurality of recursive subgraphs based on a descending order of the plurality of costs,

process the plurality of recursive subgraphs in the determined processing order, wherein processing a recursive subgraph, of the plurality of recursive subgraphs, comprises selecting a partitioning axis for tensors associated with an operator node of the recursive subgraph;

output a partitioning scheme comprising partitioning axes for each of the tensors associated with the plurality of operator nodes; and

wherein to select the partitioning axis for the tensors associated with the operator node based on an inter-operator communication cost comprising an amount of data to be communicated between the parallel computing devices for executing a neighboring operator node based on a shared tensor between the operator node and the neighboring operator node or for executing the operator node based on an output of the neighboring operator node.

2 . The device according to claim 1 , wherein the at least one processor is further configured to:

determine the number of partitioning recursions such that 2 N is equal to the number of parallel computing devices, wherein N is the number of partitioning recursions.

3 . The device according to claim 1 , wherein the at least one processor is further configured to:

determine the plurality of costs corresponding to the plurality of operator nodes based on an amount of data to be communicated between the parallel computing devices for each operator node.

4 . The device according to claim 1 , wherein the device at least one processor is further configured to:

select the partitioning axis for the tensors associated with the operator node based on an intra-operator communication cost comprising an amount of data to be communicated between the parallel computing devices for the operator node.

5 . The device according to claim 4 , wherein the at least one processor is further configured to:

select the partitioning axis for the tensors associated with the operator node based on the intra-operator communication cost, and based on determining that no partitioning axis has been determined for a neighboring operator node at a current partitioning recursion.

6 . The device according to claim 1 , wherein at least one processor is further configured to:

select the partitioning axis for the tensors associated with the operator node based on an intra-operator communication cost comprising an amount of data to be communicated between the parallel computing devices for the operator node; and

select the partitioning axis for the tensors associated with the operator node based on the intra-operator communication cost and the inter-operator communication cost, and based on determining that at least one partitioning axis has been determined for the neighboring operator node or another neighboring operator node at the current partitioning recursion.

7 . The device according to claim 1 , wherein the at least one processor is further configured to:

determine whether the partitioning scheme complies with at least one memory requirement associated with the parallel computing devices; and

output the partitioning scheme based on determining that the partitioning scheme complies with the at least one memory requirement associated with the parallel computing devices.

8 . A method for determining a parallel computation scheme for a neural network, the method comprising: receiving a computation graph for the neural network;

transforming the computation graph into a recursive dataflow graph comprising a plurality of recursive subgraphs, wherein each of the recursive subgraphs respectively is a tuple of another one of recursive subgraphs and an operator node;

determining a number of partitioning recursions based on a number of parallel computing devices; for each of the partitioning recursions:

determining a plurality of costs corresponding to a plurality of operator nodes associated with the recursive dataflow graph, determining a processing order of the plurality of recursive subgraphs based on a descending order of the plurality of costs, and

processing the plurality of recursive subgraphs in the determined processing order, wherein processing a recursive subgraph, of the recursive subgraphs, comprises selecting a partitioning axis for tensors associated with an operator node of the recursive subgraph;

outputting a partitioning scheme comprising partitioning axes for each of the tensors associated with the plurality of operator nodes; and

selecting the partitioning axis for the tensors associated with the operator node based on an inter-operator communication cost comprising an amount of data to be communicated between the parallel computing devices for executing a neighboring operator node based on a shared tensor between the operator node and the neighboring operator node or for executing the operator node based on an output of the neighboring operator node.

9 . The method according to claim 8 , the method further comprising:

determining the number of partitioning recursions such that 2 N is equal to the number of parallel computing devices, wherein N is the number of partitioning recursions.

10 . The method according to claim 8 , the method further comprising:

determining the plurality of costs corresponding to the plurality of operator nodes based on an amount of data to be communicated between the parallel computing devices for each operator node.

11 . The method according to claim 8 , the method further comprising:

selecting the partitioning axis for the tensors associated with the operator node based on an intra-operator communication cost comprising an amount of data to be communicated between the parallel computing devices for the operator node.

12 . The method according to claim 11 , the method further comprising:

selecting the partitioning axis for the tensors associated with the operator node based on the intra-operator communication cost, and based on determining that no partitioning axis has been determined for a neighboring operator node at a current partitioning recursion.

13 . The method according to claim 8 , the method further comprising:

selecting the partitioning axis for the tensors associated with the operator node based on the intra-operator communication cost, and based on determining that no partitioning axis has been determined for a neighboring operator node at a current partitioning recursion, and

selecting the partitioning axis for the tensors associated with the operator node based on the intra-operator communication cost and the inter-operator communication cost, and based on determining that at least one partitioning axis has been determined for the neighboring operator node or another neighboring operator node at a current partitioning recursion.

14 . The method according to claim 8 , the method further comprising:

determining whether the partitioning scheme complies with at least one memory requirement associated with the parallel computing devices; and

outputting the partitioning scheme based on determining that the partitioning scheme complies with the at least one memory requirement associated with parallel computing devices the device.

15 . A non-transitory computer readable medium comprising a computer program comprising a program code configured to cause performance of the method according to claim 8 , upon the computer program being executed on a computer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2025
From: LI, CHONG; TACHON, THIBAUT; WANG, HONGXING; CHAI, KELUN; LIU, CHANG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 072065/0866 →
Continuity (2)
Continuation PCTEP2020058707 · Mar 27, 2020
Related Publication 20230024350A1 · Jan 26, 2023
References Cited (18)
US 4890242A · Sinha et al. · 1989 [cited by applicant]
US 10223644B2 · Gadde · 2019 [cited by examiner]
US 20120078436A1 · Patel · 2012 [cited by examiner]
US 20160124730A1 · Boehm et al. · 2016 [cited by applicant]
US 20180189638A1 · Nurvitadhi · 2018 [cited by examiner]
US 20180260219A1 · Przybylski · 2018 [cited by applicant]
US 20200042660A1 · Teng · 2020 [cited by applicant]
US 20200074296A1 · Singh · 2020 [cited by examiner]
US 20200387799A1 · Vivekraja · 2020 [cited by examiner]
CN 107168683A · 2017 [cited by applicant]
CN 110263923A · 2019 [cited by applicant]
GB 2455077A · 2009 [cited by applicant]
WO 2017037659A1 · 2017 [cited by applicant]
Khorasani et al, “In-Register Parameter Caching for Dynamic Neural Nets with Virtual Persistent Processor Specialization”, Oct. 1, 2018, IEEE, 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (Micr… [cited by examiner]
Laich “Graph Partitioning and Scheduling for Distributed Dataflow Computation,” Institute of Parallel and Distributed Systems, University of Stuttgart UniversitatsstraBe 38 D-70569 Stuttgart, Total 71 pages, XP055465499… [cited by applicant]
Jia et al., “Exploring Hidden Dimensions in Parallelizing Convolutional Neural Networks,” arXiv:1802.04924v2 [cs.LG], Total 11 pages (Jun. 9, 2018). [cited by applicant]
Jia et al., “Beyond Data and Model Parallelism for Deep Neural Networks,” arXiv:1807.05358v1 [cs.DC], Total 15 pages (Jul. 14, 2018). [cited by applicant]
Wang et al., “Supporting Very Large Models using Automatic Dataflow Graph Partitioning,” arXiv:1807.08887v2 [cs.DC], Total 18 pages (Feb. 20, 2019). [cited by applicant]