IP Library Granted Patent US 12,499,360
Granted Patent B2
US 12,499,360 · App. 17/159,598 · Granted Dec 16, 2025

Methods and systems for managing processing of neural network across heterogeneous processors

Inventors: Akshay Parashar (Bengaluru, IN); Arun Abraham (Bengaluru, IN); Payal Anand (Bengaluru, IN); Deepthy Ravi (Bengaluru, IN); Venkappa Mala (Bengaluru, IN); Vikram Nelvoy Rajendiran (Bengaluru, IN)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06N3/08G06F9/30025G06F9/3885G06F9/4843G06N3/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,499,360
App. No.
17/159,598
Granted
Dec 16, 2025
Kind
B2
Abstract

A method, an apparatus, and a system for configuring a neural network across heterogeneous processors are provided. The method includes creating a unified neural network profile for the plurality of processors; receiving at least one request to perform at least one task using the neural network; determining a type of the requested at least one task as one of an asynchronous task and a synchronous task; and parallelizing processing of the neural network across the plurality of processors to perform the requested at least one task, based on the type of the requested at least one task and the created unified neural network profile.

Claims (59)

1 . A method for configuring a neural network across a plurality of processors, the method comprising:

creating a unified neural network profile for the plurality of processors;

receiving at least one request to perform a task using the neural network;

determining a type of the task as an asynchronous task based on an output order of output data of the task being dependent on an input order of the task, and determining the type of the task as a synchronous task based on the output order of the output data of the task being independent of the input order of the input data of the task; and

parallelizing processing of the neural network across the plurality of processors to perform the task, based on the type of the task and the created unified neural network profile, wherein the parallelizing processing comprises:

based on the task corresponding to the synchronous task, configuring the neural network into a pipelining structure by identifying a plurality of split points of the neural network based on topological sort and layer-wise profiling of the neural network, and splitting the neural network into a plurality of combinations of subjects, each comprising one or more layers; and

based on the task corresponding to the asynchronous task, configuring the neural network into a parallel structure, by allocating the plurality of processors to process a plurality of layers of the neural network in parallel, according to the unified neural network profile.

2 . The method of claim 1 , wherein the creating the unified neural network profile comprises:

extracting metadata of the neural network, wherein the metadata of the neural network indicates a number of layers for the task and parameters of the layers, wherein the layers comprise a first layer, and the parameters of the first layer comprise at least one of, a type of the first layer, weights of the first layer, a data type supported for processing the weights of the first layer, and inputs and outputs of the first layer;

determining individual profiles of the plurality of processors, wherein the plurality of processors comprise a first processor, the individual profiles of the plurality of processors comprises a first profile of the first processor, the first profile of the first processor comprises the data type supported by the first processor, a time required by the first processor to process each layer of the neural network, and overheads comprising either one or both of a data type conversion overhead and a data copy overhead; and

creating a data set as the unified neural network profile by mapping the individual profiles of the plurality of processors with the layers of the neural network and the parameters of the layers.

3 . The method of claim 2 , wherein

the data type corresponds to one of an integer data type and a float data type;

the data type conversion overhead comprises a time required for a conversion of the data type of at least one output of the first processor into a data type supported by a second processor of the plurality of processors, wherein the at least one output of the first processor is provided to the second processor; and

the data copy overhead comprises a time required for copying the at least one output of the first processor to the second processor.

4 . The method of claim 1 , wherein the configuring the neural network into the parallel structure comprises:

determining parameters of each processor of the plurality of processors at a current instance of time, wherein the parameters of each processor comprise at least one of load on each processor, resources available on each processor, and a busy status of each processor;

extracting an individual profile of each processor with respect to metadata of the neural network for the task from the unified neural network profile;

allocating at least one processor, among the plurality of processors, for at least one input of the task based on the determined parameters of each processor, and the individual profile of each processor with respect to the metadata of the neural network for the task;

providing the unified neural network profile and the at least one input to the allocated at least one processor; and

configuring the neural network on the allocated at least one processor in parallel for each of the at least one input.

5 . The method of claim 4 , wherein the at least one processor comprises a plurality of different processors allocated for each of the at least one input.

6 . The method of claim 1 , further comprising:

generating a plurality of combinations of subnetworks from the neural network, wherein each of the plurality of combinations of subnetworks comprises a plurality of subnetworks;

selecting one of the plurality of combinations of subnetworks; and

allocating different processors for the plurality of subnetworks included in the selected one of the plurality of combinations of subnetworks to process the task in parallel through the different processors.

7 . The method of claim 6 , wherein the generating the plurality of combinations of subnetworks comprises:

performing the topological sort on the neural network;

performing the layer-wise profiling of the neural network with respect to the plurality of processors; and

generating the plurality of combinations of subnetworks based on the performed topological sort and the layer-wise profiling of the neural network, wherein the plurality of subnetworks of each of the plurality of combinations of subnetworks is generated using the plurality of split points.

8 . The method of claim 7 , wherein the performing the topological sort comprises analyzing a topology of the neural network to determine whether layers of the neural network are connected in series or in parallel.

9 . The method of claim 7 , wherein the performing the layer-wise profiling comprises:

identifying individual profiles of the plurality of processors mapped with respect to layers of the neural network and associated parameters of the layers, from the unified neural network profile; and

determining a time required by the plurality of processors to process the layers of the neural network using the identified individual profiles of the plurality of processors.

10 . The method of claim 6 , wherein the selecting the one of the plurality of combinations of subnetworks comprises:

assigning the different processors for processing the plurality of subnetworks of each of the plurality of combinations of subnetworks, based on the layer-wise profiling of the neural network;

recording processing times consumed by the different processors for processing the plurality of subnetworks of each of the plurality of combinations of subnetworks;

recording a data copy overhead incurred for each of the plurality of combinations of subnetworks;

calculating a splitting cost of the plurality of split points associated with each of the plurality of combinations of subnetworks based on the recorded processing time and the recorded data copy overhead, wherein the splitting cost is a measure of difference between the processing times and the data copy overhead;

determining, among the plurality of split points, a combination of split points that is associated with a minimal splitting cost compared to other split points of the plurality of split points; and

selecting the one of the plurality of combinations of subnetworks from the plurality of combinations of subnetworks associated with the determined combination of split points.

11 . The method of claim 10 , wherein among the plurality of processors, a fastest and available processor of the plurality of processors is assigned to a subnetwork of the plurality of subnetworks that has a greatest number of layers compared to other subnets, and a slowest processor of the plurality of processors is assigned to another subnetwork of the plurality of subnetworks that has a least number of layers compared to other subnetworks.

12 . An electronic device comprising:

a memory;

a plurality of processors; and

a controller coupled to the plurality of processors and the memory, and configured to:

create a unified neural network profile for the plurality of processors;

receive at least one request to perform a task using a neural network;

determine a type of the task as an asynchronous task based on an output order of output data of the task being dependent on an input order of the task, and determine the type of the task as a synchronous task based on the output order of the output data of the task being independent of the input order of the input data of the task;

based on the task corresponding to the synchronous task, configure the neural network into a pipelining structure by identifying a plurality of split points of the neural network based on topological sort and layer-wise profiling of the neural network, and splitting the neural network into a plurality of combinations of subjects, each comprising one or more layers; and

based on the task corresponding to the asynchronous task, configure the neural network into a parallel structure, by allocating the plurality of processors to process a plurality of layers of the neural network in parallel, according to the unified neural network profile.

13 . The electronic device of claim 12 , wherein the controller is further configured to:

extract metadata of the neural network, wherein the metadata of the neural network indicates a number of layers for the task and parameters of the layers, wherein the layers comprise a first layer, and the parameters of the first layer comprise at least one of, a type of the first layer, weights of the first layer, a data type supported for processing the weights of the first layer, and inputs and outputs of the first layer;

determine individual profiles of the plurality of processors, wherein the plurality of processors comprise a first processor, the individual profiles of the plurality of processors comprises a first profile of the first processor, the first profile of the first processor comprises the data type supported by the first processor, a time required by the first processor to process each layer of the neural network, and overheads comprising at least one of a data type conversion overhead and a data copy overhead; and

create a data set, the unified neural network profile, by mapping the individual profiles of the plurality of processors with the layers of the neural network and the parameters of the layers.

14 . The electronic device of claim 13 , wherein

the data type corresponds to one of an integer data type, and a float data type;

the data type conversion overhead comprises a time required for a conversion of the data type of at least one output of the first processor into a data type supported by a second processor of the plurality of processors, wherein the at least one output of the first processor is provided to the second processor; and

the data copy overhead comprises a time required for copying the output of the first processor to the second processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2021
From: PARASHAR, AKSHAY; ABRAHAM, ARUN; ANAND, PAYAL; RAVI, DEEPTHY; MALA, VENKAPPA; RAJENDIRAN, VIKRAM NELVOY
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 055052/0056 →
Priority Claims (2)
IN 202041003492 · Jan 27, 2020 · national
IN 202041003492 · Jan 19, 2021 · national
Continuity (1)
Related Publication 20210232921A1 · Jul 29, 2021
References Cited (21)
US 10832120B2 · Diamos et al. · 2020 [cited by applicant]
US 20170024849A1 · Liu et al. · 2017 [cited by applicant]
US 20170308789A1 · Langford · 2017 [cited by examiner]
US 20180181809A1 · Ranjan · 2018 [cited by examiner]
US 20190236437A1 · Shin et al. · 2019 [cited by applicant]
US 20190266015A1 · Chandra · 2019 [cited by examiner]
US 20190324759A1 · Yang et al. · 2019 [cited by applicant]
US 20190340491A1 · Norden et al. · 2019 [cited by applicant]
US 20190347542A1 · Chen et al. · 2019 [cited by applicant]
US 20200019854A1 · Abraham et al. · 2020 [cited by applicant]
WO 2018184208A1 · 2018 [cited by applicant]
Akopyan et al., “TrueNorth: Design and Tool Flow of a 65 mW 1 Million Neuron Programmable Neurosynaptic Chip”, IEEE. (Year: 2015). [cited by examiner]
Dhakal et al., “NetML: An NFV Platform with Efficient Support for Machine Learning Applications”, IEEE. (Year: 2019). [cited by examiner]
Jiang et al., “Heterogeneous FPGA-Based Cost-Optimal Design for Timing-Constrained CNNs”, IEEE. (Year: 2018). [cited by examiner]
Li et al., “HPDL: Towards a General Framework for High-performance Distributed Deep Learning”, IEEE. (Year: 2019). [cited by examiner]
Wang et al., “An Asymmetric Data Conversion Scheme based on Binary Tags”, IEEE. (Year: 2010). [cited by examiner]
Communication dated Jan. 7, 2022 issued by the Indian Patent Office in counterpart Indian Application No. 202041003492. [cited by applicant]
Jilin Zhang et al., “A Parallel Strategy for Convolutional Neural Network Based on Heterogeneous Cluster for Mobile Information System”, Hindawi, Mar. 21, 2017, vol. 2017, Article ID 3824765, pp. 1-12 (14 pages total). [cited by applicant]
Written Opinion (PCT/ISA/237) issued by the International Searching Authority in International Application No. PCT/KR2021/001017, issued on May 11, 2021. [cited by applicant]
International Search Report (PCT/ISA/210) issued by the International Searching Authority in International Application No. PCT/KR2021/001017, issued on May 11, 2021. [cited by applicant]
Yanping Huang et al., “GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism”, 33rd Conference on Neural Information Processing Systems, NeurlPS 2019, 2019, pp. 1-10, 10 pages total. [cited by applicant]