CN111145076A - 数据并行化处理方法、系统、设备及存储介质 - Google Patents

数据并行化处理方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN111145076A
CN111145076A CN201911373599.2A CN201911373599A CN111145076A CN 111145076 A CN111145076 A CN 111145076A CN 201911373599 A CN201911373599 A CN 201911373599A CN 111145076 A CN111145076 A CN 111145076A
Authority
CN
China
Prior art keywords
node
nodes
tensor
input
data model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911373599.2A
Other languages
English (en)
Other versions
CN111145076B (zh
Inventor
马恺
熊超
牛昕宇
蔡权雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN201911373599.2A priority Critical patent/CN111145076B/zh
Publication of CN111145076A publication Critical patent/CN111145076A/zh
Priority to PCT/CN2020/138539 priority patent/WO2021129645A1/zh
Priority to US17/789,280 priority patent/US20230035910A1/en
Application granted granted Critical
Publication of CN111145076B publication Critical patent/CN111145076B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种数据并行化处理方法、系统、设备及存储介质。其中,所述方法包括:将所述具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。本发明通过多个输入的图推理重叠运行,实现了充分利用CPU和运算卡资源的技术效果。

Description

数据并行化处理方法、系统、设备及存储介质
技术领域
本发明实施例涉及网络拓扑图推理技术领域,尤其涉及一种数据并行化处理方法、系统、设备及存储介质。
背景技术
深度学习网络通常由算法训练得来。多数情况下,算法开发人员倾向于使用已有的公开深度学习框架进行模型训练,而大部分公开深度学习框架是针对于中央处理器/图形处理器(Central Processing Unit/Graphics Processing Unit,CPU/GPU)这类计算设备设计的。CPU/GPU采用传统的指令集架构,架构效率较低,灵活性较高。随着深度学习相关技术的发展,对于计算能力的要求越来越高。相关技术中的指令集的架构效率缺陷已经不能满足应用场景的需求。对比而言,数据流架构效率更高,从技术路线来看更加适合深度学习技术的发展趋势。然而,数据流芯片只适用于深度学习算子,正常使用仍然需要CPU协助进行数据传输和处理。运行过程中,将处理好的数据从内存中搬运到片上内存中,等待运算卡运行完成之后将结果拿回,进行后处理,完成整个图推理过程。
相关技术中采用的图推理方法多是单线程运行带有异步计算,而这种图推理方法容易导致不能充分利用CPU和运算卡的运算资源。
发明内容
本发明提供一种数据并行化处理方法、系统、设备及存储介质,以实现针对多个输入的图推理可以重叠运行,从而充分利用CPU和运算卡的资源的技术效果。
第一方面,本发明实施例提供了一种数据并行化处理方法,包括:
从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;
获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;
根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;
获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为成第二输入张量;
根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
第二方面,本发明实施例还提供了一种数据并行化处理系统,包括:
筛选模块,用于从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;
第一获取模块,用于获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;
第一计算模块,用于根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;
第二获取模块,用于获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;
第二计算模块,用于根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
在一实施例中,本发明实施例还提供了一种设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述实施例中任一的方法。
在一实施例中,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中的方法。
本发明通过将具有逻辑关系的多个节点并行进行数据处理,解决了现有技术中无法充分利用CPU和运算卡的运算资源的技术问题,实现了通过多个输入的图推理的重叠运行充分利用CPU和运算卡的资源的技术效果。
附图说明
图1为本发明实施例一提供的一种数据并行化处理方法的流程图;
图2为本发明实施例二提供的一种数据并行化处理方法的流程图;
图3为本发明实施例三提供的一种数据并行化处理系统的结构示意图;
图4为本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行说明。此处所描述的实施例仅仅用于解释本发明,而非对本发明的限定。为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将一个或多个步骤描述成顺序的处理,但是其特征在于的许多步骤可以被并行地、并发地或者同时实施。此外,一个或多个步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述多种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一获取模块称为第二获取模块,且类似地,可将第二获取模块称为第一获取模块。第一获取模块和第二获取模块两者都是获取模块,但其不是同一获取模块。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确的限定。
实施例一
图1为本发明实施例一提供的一种数据并行化处理方法的流程图。本实施例可适用于多个具有逻辑关系的图推理情况,该方法可以由主机来执行。如图1所示,一种数据并行化处理方法,包括S110至S150。
S110、从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点。
在本实施例中,具有逻辑关系的至少三个第一计算节点是指这三个第一计算节点至少包括一个位于逻辑关系中上游的第一前节点和至少两个与第一前节点存在直接逻辑关系的位于第一前节点下游的第一后节点,第一后节点在进行数据计算时先接收第一前节点的数据处理结果作为第一后节点的输入数据,也就是说,在第一前节点计算完成后,得到的第一前节点的计算结果传输到与第一前节点直接关联的至少两个第一后节点作为第一后节点的输入数据。
以神经网络的计算节点计算为例,神经网络一般有多层,也就是多个逻辑性顺序连接的计算节点,一实施例中,第一前节点可以是指神经网络模型计算的最先开始计算的层级,第一后节点可以是指神经网络模型计算的在第一前节点计算之后马上开始计算的层级。第一前节点也可以是指神经网络模型计算的第n层级,第一后节点可以是指神经网络模型计算的n+1层级。本实施例不做限制。本实施例的神经网络类型包括前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,此处对于第一神经网络类型不作限制。
S120、获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量。
在本实施例中,输入数据模型是指一种用于数据输入的数据模型,例如神经网络每层节点的计算公式或计算模型,输入张量是指一种带有输入数据的矢量。
S130、根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量。
在本实施例中,输出张量是指一种带有输出数据的矢量,在通过S120得到第一前节点的第一输入数据模型和第一输入张量后,计算第一前节点得到第一前节点的数据计算结果,这个数据计算结果就是本实施例中的第一输出张量。
S140、获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量。
在一实施例中,在完成了第一前节点的计算后,获取第一后节点的第二输入数据模型,并将第一输出张量作为第一后节点的输入数据从而得到第二输入张量。
S150、根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
在一实施例中,基于在S140中得到的第二输入数据模型和第二输入张量,根据第一后节点的个数分别计算每个第一后节点,从而得到每个第一后节点的数据计算结果,并根据每个第一后节点的数据计算结果生成第二输出张量,从而得到第一并行节点组的总的计算结果,也就是第一计算结果。
本发明实施例一通过将具有逻辑关系的多个节点并行进行数据处理,解决了相关技术中无法充分利用CPU和运算卡的运算资源的问题,实现了通过多个输入的图推理的重叠运行充分利用CPU和运算卡的资源的效果。
实施例二
本发明实施例二是在实施例一的基础上的可选实施例。图2为本发明实施例二提供的一种数据并行化处理方法的流程图。如图2所示,本实施例的数据并行化处理方法,包括S201至S216。
S201、判断至少三个第一计算节点是否包括具有逻辑关系的第一前节点和至少两个第一后节点。
在本实施例中,在接收到多个第一计算节点后,在这些第一计算节点中选取至少三个第一计算节点并判断这三个计算节点是否存在逻辑关系,即是否存在第一前节点和至少两个第一后节点。以神经网络的计算节点计算为例,神经网络一般有多层,也就是多个逻辑性顺序连接的计算节点,一实施例中,第一前节点可以是指神经网络模型计算的最先开始计算的层级,第一后节点可以是指神经网络模型计算的在第一前节点计算之后马上开始计算的层级。第一前节点也可以是指神经网络模型计算的第n层级,第一后节点可以是指神经网络模型计算的n+1层级。本实施例不做限制。本实施例的神经网络类型包括前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,此处对于第一神经网络类型不作限制。
S202、若至少三个第一计算节点包括具有逻辑关系的第一前节点和至少两个第二后节点,则将至少三个第一计算节点定义为第一并行节点组。
在本实施例中,当至少三个第一计算节点包括具有逻辑关系的第一前节点和至少两个第二后节点时,也就是说,这三个第一计算节点构成了一个最小逻辑关系组,这时可以将这三个第一计算节点定义为第一并行节点组。
S203、根据至少两个第一后节点的数量确认第一前节点的引用次数。
在本实施例中,可以根据每个第一前节点的下游存在的具有直接逻辑关系的第一后节点的个数,确定第一前节点的引用次数。举例来说,当一个第一前节点的逻辑下游处直接关联三个第一后节点,也就是说,第一前节点通过计算得到的计算结果,即第一输出张量直接传输到三个第一后节点,这三个第一后节点并行接收第一输出张量作为自己的输入数据,即第二输入张量,这时,第一前节点被引用了三次,那么第一前节点在进行计算前的引用次数被用于三。
S204、对第一并行节点组的第一前节点和至少两个第一后节点进行加锁。
在本实施例中,在本实施例中,在进行计算前,可以先对第一并行节点组中的第一前节点和第一后节点进行加锁操作,加锁的目的在于保证进行计算的都是不同的节点,防止因重复计算相同的节点而导致的内存浪费问题。
S205、获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量。
在本实施例中,输入数据模型是指一种用于数据输入的数据模型,例如神经网络每层节点的计算公式或计算模型,输入张量是指一种带有输入数据的矢量。
S206、根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量。
在本实施例中,输出张量是指一种带有输出数据的矢量,在通过S205得到第一前节点的第一输入数据模型和第一输入张量后,计算第一前节点得到第一前节点的数据计算结果,这个数据计算结果就是本实施例中的第一输出张量。
S207、获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量。
在本实施例中,在完成了第一前节点的计算后,获取第一后节点的第二输入数据模型,并接收第一输出张量作为第一后节点的输入数据从而得到第二输入张量。
S208、根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
在本实施例中,基于在S207中得到的第二输入数据模型例如神经网络每层节点的计算公式或计算模型,和第二输入张量,根据第一后节点的个数分别计算每个第一后节点,从而得到每个第一后节点的数据计算结果,并根据每个第一后节点的数据计算结果生成第二输出张量,从而得到第一并行节点组的总的计算结果,也就是第一计算结果。
S209、判断每个第一后节点是否完成计算。
在本实施例中,在完成S208,即得到第一计算结果后,还判断第一并行节点组中的每个第一后节点是否都完成了计算,这样做能确保第一计算结果的准确性。
S210、在每个第一后节点完成计算后,分别对第一前节点的引用次数减一。
在本实施例中,在对每个第一后节点并行进行数据处理时,当第一并行节点组中的任一个第一后节点完成计算后,将第一前节点的引用次数减一。举例来说,当第一并行节点组中包括一个第一前节点和两个第一后节点时,根据S203得到第一前节点的引用次数为二,第一前节点的计算完成后得到第一输出张量,并将第一输出张量分别传输到两个第一后节点中,这时对两个第一后节点进行并行的数据处理计算,当第一后节点计算完成时,可以分别生成一个计算完成的反馈指令发送到第一前节点的引用次数计数器中,计数器接收到计算完成的反馈指令后将计数器中的引用次数分别减一,从而更新了第一并行节点组中第一前节点和第一后节点之间逻辑关系里的引用关系。
S211、判断第一前节点的引用次数是否为零。
在本实施例中,通过S210对第一前节点的引用次数进行更新,并实时判断第一前节点的引用次数是否为零,这样能检测与第一前节点存在直接逻辑关系的第一后节点是否全部完成了计算。
S212、当第一前节点的引用次数为零时,删除片上存储的第一输出张量并将第一输出张量存储到片外存储器中。
在本实施例中,当第一前节点的引用次数为零时,也就是说这时与第一前节点存在直接逻辑关系的位于下游的所有第一后节点全部完成了计算并得到了第二输出张量,可以删除存储在缓存内的第一输出张量,并把第一输出张量存储到内存中。
S213、当第一前节点的引用次数为零时,删除片上存储的与第一前节点对应的计算图。
在本实施例中,当第一前节点的引用次数为零时,将存储在缓存中的第一前节点的第一输入数据模型删除,从而节约存储资源。
S214、判断第一并行节点组的至少两个第一后节点的下游是否存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组,第二并行节点组包括第二前节点和至少两个第二后节点。
在本实施例中,当第一并行节点组完成了包括的所有第一前节点和第一后节点的计算后,判断是否有第二并行节点组位于第一并行节点组的逻辑关系下游,这里的第二并行节点组与第一并行节点组都是一种包括至少三个第一计算节点的。
S215、在第一后节点的下游存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组的情况下,获取第二前节点的第三输入数据模型并生成第二前节点的第三输入张量;根据第三输入数据模型和第三输入张量计算第二前节点的第三输出张量;获取至少两个第二后节点的第四输入数据模型并将第三输出张量作为第四输入张量;根据第四输入数据模型和第四输入张量分别计算至少两个第二后节点的第四输出张量,得到第二并行节点组的第二计算结果。
在本实施例中,当第一后节点的下游还存在第二并行节点组时,在计算第二并行节点组时可以按照计算第一并行节点组的方法进行计算得到第二计算结果。
S216、在第一后节点的下游不存在第二并行节点组的情况下,接收计算完成指令以结束计算。
在本实施例中,当第一后节点的下游不存在第二并行节点组时,生成一个计算完成指令并发送到主机,通知主机结束计算操作。
本发明实施例二通过将具有逻辑关系的多个节点并行进行数据处理,并针对每个并行节点组中的节点进行加锁操作,解决了相关技术中无法充分利用CPU和运算卡的运算资源的问题,实现了通过多个输入的图推理的重叠运行并对计算图中的节点分别加锁,充分利用CPU和运算卡的资源的效果。
实施例三
图3为本发明实施例三提供的一种数据并行化处理系统的结构示意图。如图3所示,本实施例的数据并行化处理系统300,包括:筛选模块310、第一获取模块320、第一计算模块330、第二获取模块340以及第二计算模块350。
筛选模块310,用于从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;
第一获取模块320,用于获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;
第一计算模块330,用于根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;
第二获取模块340,用于获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;
第二计算模块350,用于根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
在本实施例中,筛选模块310包括:
第一判断单元,用于判断至少三个第一计算节点是否包括具有逻辑关系的第一前节点和至少两个第一后节点;
第一定义单元,用于若至少三个第一计算节点包括具有逻辑关系的第一前节点和至少两个第二后节点,则将至少三个第一计算节点定义为第一并行节点组。
在本实施例中,数据并行化处理系统300还包括:
引用模块,用于根据至少两个第一后节点的数量确认第一前节点的引用次数。
在本实施例中,数据并行化处理系统300还包括:
加锁模块,用于对第一并行节点组的第一前节点和至少两个第一后节点进行加锁。
在本实施例中,数据并行化处理系统300还包括:
第一判断模块,用于判断每个第一后节点是否完成计算:
更新模块,用于在每个第一后节点完成计算后,分别对第一前节点的引用次数减一;
第二判断模块,用于判断第一前节点的引用次数是否为零;
第一删除模块,用于当第一前节点的引用次数为零时,删除片上存储的第一输出张量并将第一输出张量存储到片外存储器中。
在本实施例中,数据并行化处理系统300还包括:
第二删除模块,用于当第一前节点的引用次数为零时,删除片上存储的与第一前节点对应的计算图。
在本实施例中,数据并行化处理系统300还包括:
第三判断模块,用于判断第一并行节点组的至少两个第一后节点的下游是否存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组,第二并行节点组包括第二前节点和至少两个第二后节点;
第三计算模块,用于在第一后节点的下游存在以至少两个第一后节点中的任一节点为第二前节点的第二并行节点组的情况下,获取第二前节点的第三输入数据模型并生成第二前节点的第三输入张量;根据第三输入数据模型和第三输入张量计算第二前节点的第三输出张量;获取至少两个第二后节点的第四输入数据模型并将第三输出张量作为第四输入张量;根据第四输入数据模型和第四输入张量分别计算至少两个第二后节点的第四输出张量,得到第二并行节点组的第二计算结果;
结束模块,用于在第一后节点的下游不存在第二并行节点组的情况下,接收计算完成指令以结束计算。
本发明实施例所提供的数据并行化处理装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和效果。
实施例四
图4为本发明实施例四提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备12(即图4中的计算机系统/服务器)的框图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来限制。
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括工业标准体系结构(Industry Standard Architecture,ISA)总线,微通道体系结构(MicroChannel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standard Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备12包括多种计算机系统可读介质。这些介质可以是能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28(即图4中的内存)可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存32。计算机设备12可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如便携式紧凑磁盘只读存储器(Compact Disc ReadOnly Memory,CD-ROM),数字多功能盘只读存储器(Digital Video Disk Read OnlyMemory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明多个实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Drives,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行多种功能应用以及数据处理,例如实现本发明实施例所提供的方法:
从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;
获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;
根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;
获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;
根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如本发明所有申请实施例提供的方法:
从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,第一并行节点组包括第一前节点和至少两个第一后节点;
获取第一前节点的第一输入数据模型并生成第一前节点的第一输入张量;
根据第一输入数据模型和第一输入张量计算第一前节点的第一输出张量;
获取至少两个第一后节点的第二输入数据模型并将第一输出张量作为第二输入张量;
根据第二输入数据模型和第二输入张量分别计算至少两个第一后节点的第二输出张量,得到第一并行节点组的第一计算结果。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其特征在于承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用适当的介质传输,包括无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

Claims (10)

1.一种数据并行化处理方法,其特征在于,包括:
从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将所述具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,所述第一并行节点组包括第一前节点和至少两个第一后节点;
获取所述第一前节点的第一输入数据模型并生成所述第一前节点的第一输入张量;
根据所述第一输入数据模型和所述第一输入张量计算所述第一前节点的第一输出张量;
获取所述至少两个第一后节点的第二输入数据模型并将所述第一输出张量作为第二输入张量;
根据所述第二输入数据模型和所述第二输入张量分别计算所述至少两个第一后节点的第二输出张量,得到所述第一并行节点组的第一计算结果。
2.根据权利要求1所述的方法,其特征在于,所述从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将所述具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,包括:
判断所述至少三个第一计算节点是否包括具有逻辑关系的所述第一前节点和所述至少两个第一后节点;
响应于所述至少三个第一计算节点包括具有逻辑关系的所述第一前节点和所述至少两个第二后节点,将所述至少三个第一计算节点定义为所述第一并行节点组。
3.根据权利要求1所述的方法,其特征在于,在所述获取所述第一前节点的第一输入数据模型并生成所述第一前节点的第一输入张量之前,还包括:
根据所述至少两个第一后节点的数量确认所述第一前节点的引用次数。
4.根据权利要求1所述的方法,其特征在于,在所述获取所述第一前节点的第一输入数据模型并生成所述第一前节点的第一输入张量之前,还包括:
对所述第一并行节点组的所述第一前节点和所述至少两个第一后节点进行加锁。
5.根据权利要求3所述的方法,其特征在于,在所述根据所述第二输入数据模型和第二输入张量计算所述至少两个第一后节点的第二输出张量,得到所述第一并行节点组的第一计算结果之后,还包括:
判断每个第一后节点是否完成计算:
在每个第一后节点完成计算后,分别对所述第一前节点的引用次数减一;
判断所述第一前节点的引用次数是否为零;
在所述第一前节点的引用次数为零的情况下,删除片上存储的所述第一输出张量并将所述第一输出张量存储到片外存储器中。
6.根据权利要求5所述的方法,其特征在于,在所述第一前节点的引用次数为零的情况下,删除片上存储的所述第一输出张量并将所述第一输出张量存储到片外存储器中之后,还包括:
删除所述片上存储的与所述第一前节点对应的计算图。
7.根据权利要求5所述的方法,其特征在于,所述在所述第一前节点的引用次数为零的情况下,删除片上存储的所述第一输出张量并将所述第一输出张量存储到片外存储器中之后,还包括:
判断所述第一并行节点组的所述至少两个第一后节点的下游是否存在以所述至少两个第一后节点中的任一节点为第二前节点的第二并行节点组,所述第二并行节点组包括所述第二前节点和至少两个第二后节点;
在所述第一后节点的下游存在以所述至少两个第一后节点中的任一节点为第二前节点的第二并行节点组的情况下,获取所述第二前节点的第三输入数据模型并生成所述第二前节点的第三输入张量;根据所述第三输入数据模型和第三输入张量计算所述第二前节点的第三输出张量;获取所述至少两个第二后节点的第四输入数据模型并将所述第三输出张量作为第四输入张量;根据所述第四输入数据模型和第四输入张量分别计算所述至少两个第二后节点的第四输出张量,得到所述第二并行节点组的第二计算结果;
在所述第一后节点的下游不存在所述第二并行节点组的情况下,接收计算完成指令以结束计算。
8.一种数据并行化处理系统,其特征在于,包括:
筛选模块,用于从多个第一计算节点中确认具有逻辑关系的至少三个第一计算节点,将所述具有逻辑关系的至少三个第一计算节点定义为第一并行节点组,所述第一并行节点组包括第一前节点和至少两个第一后节点;
第一获取模块,用于获取所述第一前节点的第一输入数据模型并生成所述第一前节点的第一输入张量;
第一计算模块,用于根据所述第一输入数据模型和所述第一输入张量计算所述第一前节点的第一输出张量;
第二获取模块,用于获取所述至少两个第一后节点的第二输入数据模型并将所述第一输出张量作为第二输入张量;
第二计算模块,用于根据所述第二输入数据模型和所述第二输入张量分别计算所述至少两个第一后节点以生成第二输出张量,得到所述第一并行节点组的第一计算结果。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
CN201911373599.2A 2019-12-27 2019-12-27 数据并行化处理方法、系统、设备及存储介质 Active CN111145076B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911373599.2A CN111145076B (zh) 2019-12-27 2019-12-27 数据并行化处理方法、系统、设备及存储介质
PCT/CN2020/138539 WO2021129645A1 (zh) 2019-12-27 2020-12-23 数据并行化处理方法、系统、设备和存储介质
US17/789,280 US20230035910A1 (en) 2019-12-27 2020-12-23 Method, system and device for parallel processing of data, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911373599.2A CN111145076B (zh) 2019-12-27 2019-12-27 数据并行化处理方法、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111145076A true CN111145076A (zh) 2020-05-12
CN111145076B CN111145076B (zh) 2023-04-07

Family

ID=70520909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911373599.2A Active CN111145076B (zh) 2019-12-27 2019-12-27 数据并行化处理方法、系统、设备及存储介质

Country Status (3)

Country Link
US (1) US20230035910A1 (zh)
CN (1) CN111145076B (zh)
WO (1) WO2021129645A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231330A (zh) * 2020-10-15 2021-01-15 中体彩科技发展有限公司 一种防止彩票游戏并发重复计奖的控制方法及系统
WO2021129645A1 (zh) * 2019-12-27 2021-07-01 深圳鲲云信息科技有限公司 数据并行化处理方法、系统、设备和存储介质
CN113836386A (zh) * 2021-11-25 2021-12-24 之江实验室 一种并行模式搜索空间构造系统和方法
CN114035968A (zh) * 2022-01-10 2022-02-11 北京一流科技有限公司 用于多流并行的冲突处理系统及其方法
CN114429051A (zh) * 2022-04-01 2022-05-03 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质
WO2022165687A1 (zh) * 2021-02-02 2022-08-11 深圳计算科学研究院 一种基于grape框架的图算法并行加速方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218152B (zh) * 2021-12-06 2023-08-15 海飞科(南京)信息技术有限公司 流处理方法、处理电路和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107563512A (zh) * 2017-08-24 2018-01-09 腾讯科技(上海)有限公司 一种数据处理方法、装置以及存储介质
CN110321999A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 神经网络计算图优化方法
CN110377429A (zh) * 2019-07-24 2019-10-25 深圳乐信软件技术有限公司 一种实时任务计算的控制方法、装置、服务器及存储介质
CN110383206A (zh) * 2017-04-07 2019-10-25 英特尔公司 用于利用硬件加速来生成高斯随机数的系统和方法
CN110413675A (zh) * 2019-07-24 2019-11-05 深圳乐信软件技术有限公司 一种实时任务计算的控制方法、装置、服务器及存储介质
CN110574044A (zh) * 2017-05-23 2019-12-13 英特尔公司 用于使用依赖树来增强二进制权重神经网络的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140252B2 (en) * 2017-02-28 2018-11-27 Microsoft Technology Licensing, Llc Hardware node with matrix-vector multiply tiles for neural network processing
CN109740916A (zh) * 2018-12-28 2019-05-10 中科驭数(北京)科技有限公司 基于计算流图的时间序列处理方法、装置和存储介质
CN110321210A (zh) * 2019-06-28 2019-10-11 京东数字科技控股有限公司 数据处理方法、装置、计算机可读介质及电子设备
CN111145076B (zh) * 2019-12-27 2023-04-07 深圳鲲云信息科技有限公司 数据并行化处理方法、系统、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383206A (zh) * 2017-04-07 2019-10-25 英特尔公司 用于利用硬件加速来生成高斯随机数的系统和方法
CN110574044A (zh) * 2017-05-23 2019-12-13 英特尔公司 用于使用依赖树来增强二进制权重神经网络的方法和装置
CN107563512A (zh) * 2017-08-24 2018-01-09 腾讯科技(上海)有限公司 一种数据处理方法、装置以及存储介质
CN110321999A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 神经网络计算图优化方法
CN110377429A (zh) * 2019-07-24 2019-10-25 深圳乐信软件技术有限公司 一种实时任务计算的控制方法、装置、服务器及存储介质
CN110413675A (zh) * 2019-07-24 2019-11-05 深圳乐信软件技术有限公司 一种实时任务计算的控制方法、装置、服务器及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021129645A1 (zh) * 2019-12-27 2021-07-01 深圳鲲云信息科技有限公司 数据并行化处理方法、系统、设备和存储介质
CN112231330A (zh) * 2020-10-15 2021-01-15 中体彩科技发展有限公司 一种防止彩票游戏并发重复计奖的控制方法及系统
WO2022165687A1 (zh) * 2021-02-02 2022-08-11 深圳计算科学研究院 一种基于grape框架的图算法并行加速方法和装置
CN113836386A (zh) * 2021-11-25 2021-12-24 之江实验室 一种并行模式搜索空间构造系统和方法
CN113836386B (zh) * 2021-11-25 2022-03-25 之江实验室 一种并行模式搜索空间构造系统和方法
CN114035968A (zh) * 2022-01-10 2022-02-11 北京一流科技有限公司 用于多流并行的冲突处理系统及其方法
CN114035968B (zh) * 2022-01-10 2022-03-18 北京一流科技有限公司 用于多流并行的冲突处理系统及其方法
CN114429051A (zh) * 2022-04-01 2022-05-03 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质

Also Published As

Publication number Publication date
US20230035910A1 (en) 2023-02-02
CN111145076B (zh) 2023-04-07
WO2021129645A1 (zh) 2021-07-01

Similar Documents

Publication Publication Date Title
CN111145076B (zh) 数据并行化处理方法、系统、设备及存储介质
EP3446260B1 (en) Memory-efficient backpropagation through time
US20220147877A1 (en) System and method for automatic building of learning machines using learning machines
US8918747B2 (en) Formal verification of a logic design
CN113361593B (zh) 生成图像分类模型的方法、路侧设备及云控平台
US20210090182A1 (en) Tensor-based predictions from analysis of time-varying graphs
CN112906865B (zh) 神经网络架构搜索方法、装置、电子设备及存储介质
US11886779B2 (en) Accelerated simulation setup process using prior knowledge extraction for problem matching
CN115686908A (zh) 一种数据处理方法及相关设备
CN114064928A (zh) 一种知识图谱的知识推理方法、装置、设备及存储介质
CN115034596A (zh) 一种风险传导预测方法、装置、设备和介质
CN108509179B (zh) 用于检测人脸的方法、用于生成模型的装置
US20220292390A1 (en) Uniform artificial intelligence model conversion
CN116166967B (zh) 基于元学习与残差网络的数据处理方法、设备和存储介质
CN113204614A (zh) 模型训练方法、优化训练数据集的方法及其装置
CN111738290A (zh) 图像检测方法、模型构建和训练方法、装置、设备和介质
WO2020230043A1 (en) Feature vector feasibilty estimation
CN115186738B (zh) 模型训练方法、装置和存储介质
US11657323B2 (en) Machine learning model accuracy fairness
US20170192485A1 (en) Providing a power optimized design for a device
CN111861757A (zh) 一种融资匹配方法、系统、设备和存储介质
CN114372238B (zh) 一种分布式状态估计方法
US11210155B1 (en) Performance data analysis to reduce false alerts in a hybrid cloud environment
CN110633596A (zh) 预测车辆方向角的方法和装置
CN112148285B (zh) 一种界面设计方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant