CN111047045A - 机器学习运算的分配系统及方法 - Google Patents

机器学习运算的分配系统及方法 Download PDF

Info

Publication number
CN111047045A
CN111047045A CN201811190161.6A CN201811190161A CN111047045A CN 111047045 A CN111047045 A CN 111047045A CN 201811190161 A CN201811190161 A CN 201811190161A CN 111047045 A CN111047045 A CN 111047045A
Authority
CN
China
Prior art keywords
terminal
cloud
machine learning
instruction
server
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
CN201811190161.6A
Other languages
English (en)
Other versions
CN111047045B (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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201811190161.6A priority Critical patent/CN111047045B/zh
Priority to PCT/CN2019/109552 priority patent/WO2020073874A1/zh
Publication of CN111047045A publication Critical patent/CN111047045A/zh
Application granted granted Critical
Publication of CN111047045B publication Critical patent/CN111047045B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种机器学习运算的分配系统,根据终端服务器控制指令在终端服务器中使用运算能力较低的第一机器学习算法计算上述运算任务时,可得到一个准确性较低的运算结果。而根据云端服务器控制指令在云端服务器中使用运算能力较高的第二机器学习算法也计算上述同一个运算任务时,可得到一个准确性较高的运算结果。这样,实现了基于用户的需求,灵活地使用不同的机器学习算法分别执行同一个运算任务,从而用户可分别得到一个准确性较低的运算结果和一个准确性较高的运算结果。并且,由于终端服务器的运算能力较弱,终端运算结果能够先输出,这样避免了用户需要长时间的等待,提高了处理效率。

Description

机器学习运算的分配系统及方法
技术领域
本发明涉及信息处理技术领域,特别是涉及一种机器学习运算的分配系统及方法。
背景技术
机器学习近些年来取得了重大突破,比如,在机器学习技术中,采用深度学习算法训练的神经网络模型在图像识别、语音处理、智能机器人等应用领域取得了令人瞩目的成果。深度神经网络通过建立模型来模拟人类大脑的神经连接结构,在处理图像、声音和文本等信号时,通过多个变换阶段分层对数据特征进行描述。然而,随着机器学习算法的复杂度不断提高,机器学习技术在实际应用过程中存在占用资源多、运算速度慢、能量消耗大等问题。
比如,在传统的机器学习算法的处理过程中,为了通用性的要求,往往需要占据很大的内存空间在云端来存储训练好的权重。
然而,采用上述方法会导致机器学习算法的处理时间长,处理效率低,进而导致用户的等待时间过长。
发明内容
基于此,有必要针对上述机器学习算法的处理效率低的问题,提供一种处理效率高的机器学习运算的分配系统及方法。
一种机器学习运算的分配系统,包括:终端服务器和云端服务器;
所述终端服务器用于根据需求信息生成对应的运算任务,并根据所述运算任务和终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和云端服务器的硬件性能参数选取在所述云端服务器运行的第二机器学习算法;
根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令。
一种机器学习运算的分配方法,包括:
获取需求信息、终端服务器的硬件性能参数和云端服务器的硬件性能参数;
根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器的硬件性能参数在所述云端服务器运行的第二机器学习算法;
根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令。
上述机器学习运算的分配系统及方法,当需要根据用户的需求信息来完成运算任务时,分别在终端服务器和云端服务器中都执行该运算任务,以此实现利用不同的机器学习算法来完成同一个运算任务的目的,并可以得到不同的精确程度的运算结果。具体而言,首先对终端服务器和云端服务器的硬件性能参数进行评估,分别选取一个运算能力较低的在终端服务器运行的第一机器学习算法和一个运算能力较高的在云端服务器运行的第二机器学习算法。基于不同的机器学习算法,在终端服务器中生成可在终端服务器中进行控制的终端服务器控制指令以及可在云端服务器中进行控制的云端服务器控制指令。由此可知,当采用上述终端服务器控制指令和云端服务器控制指令时,根据终端服务器控制指令在终端服务器中使用运算能力较低的第一机器学习算法计算上述运算任务时,可得到一个准确性较低的运算结果。而根据云端服务器控制指令在云端服务器中使用运算能力较高的第二机器学习算法也计算上述同一个运算任务时,可得到一个准确性较高的运算结果。这样,实现了基于用户的需求,灵活地使用不同的机器学习算法分别执行同一个运算任务,从而用户可分别得到一个准确性较低的运算结果和一个准确性较高的运算结果。并且,由于终端服务器的运算能力较弱,终端运算结果能够先输出,这样避免了用户需要长时间的等待,提高了处理效率,且充分利用了终端服务器与云端服务器两部分的计算资源,使得同一个运算任务可以在终端服务器与云端服务器设备上共同进行。
附图说明
图1为一实施例的机器学习运算的分配系统的结构示意图;
图2为另一实施例的机器学习运算的分配系统的结构示意图;
图3为另一实施例的机器学习运算的分配系统的结构示意图;
图4为一实施例的运算-存储-通信工作模式图;
图5A为一实施例的一种计算装置的结构示意图;
图5B是为一实施例的计算装置的结构图;
图5C为另一实施例提供的计算装置的结构图;
图5D为一实施例的主处理电路的结构图;
图5E为一实施例的另一种计算装置的结构图;
图5F为一实施例的树型模块的结构示意图;
图5G为一实施例的又一种计算装置的结构图;
图5H为一实施例的还一种计算装置的结构图;
图5I为一实施例的一种计算装置的结构示意图;
图6为一实施例的机器学习运算的分配方法的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,提供了一种机器学习运算的分配系统,该分配系统包括:云端服务器10和终端服务器20。
根据需求信息生成对应的运算任务,并根据所述运算任务和终端服务器20的硬件性能参数选取在所述终端服务器20运行的第一机器学习算法,以及根据所述运算任务和云端服务器10的硬件性能参数选取在所述云端服务器10运行的第二机器学习算法;根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令。
具体地,用户根据自身的实际需求通过终端设备输入相应的需求信息,该终端设备包括含有控制功能的输入获取单元,输入获取单元可由用户来选择,比如可以是APP,也可以是其它程序的API接口等。用户输入的需求信息主要由三方面决定,一方面是功能需求信息,一方面是准确度需求信息,另一方面是内存需求信息。对应地,运算任务包括功能需求任务、准确度需求任务及内存需求任务。需要清楚,第一机器学习算法的运算任务与第二机器学习算法的运算任务是同一个运算任务。硬件性能参数包括但不限于运算能力、能耗、精度及速度等。
更具体地,机器学习算法包括但不限于神经网络算法和深度学习算法。机器学习算法具有明显的逐阶段特征,比如每一层神经网络的运算、聚类算法的每次迭代等等。进一步地,划分机器学习算法为多个阶段的算法。在一个实施例中,机器学习算法为多层神经网络算法,多个阶段包括多个层。在另一个实施例中,机器学习算法为聚类算法,多个阶段为多次迭代。在每一阶段的计算中都可以分别通过终端服务器20与云端服务器10进行计算。
需要理解的是,由于终端服务器的运算能力较低,对应的第一机器学习算法的运算性能也较低。相反地,云端服务器的运算能力较高,对应的第二机器学习算法的运算性能也较高。
因此,在终端服务器20中计算对应的每个阶段的第一机器学习算法的运算任务,能够更加快速地得到一个准确性较低的终端运算结果。而在云端服务器10中计算对应的每个阶段的第二机器学习算法的运算任务虽然需要消耗较长时间,但能够得到一个准确性较高的云端运算结果。于是,虽然终端运算结果能够相对于云端运算结果更快地得出,但云端运算结果相对于终端运算结果更为准确。
此处举个简单的例子,若需要辨别图像中的动物是一只猫,分别在终端服务器20和云端服务器10中进行图像识别,则终端服务器20可能会较先地得出图像中的动物是一只猫的结果,而云端服务器10则晚于终端服务器20得出图像中的动物是一只猫的结果,但云端服务器10可能还会得到这只猫的品种等更为准确的运算结果。
上述机器学习运算的分配系统及方法,当需要根据用户的需求信息来完成运算任务时,分别在终端服务器和云端服务器中都执行该运算任务,以此实现利用不同的机器学习算法来完成同一个运算任务的目的,并可以得到不同的精确程度的运算结果。具体而言,首先对终端服务器和云端服务器的硬件性能参数进行评估,分别选取一个运算能力较低的在终端服务器运行的第一机器学习算法和一个运算能力较高的在云端服务器运行的第二机器学习算法。基于不同的机器学习算法,在终端服务器中生成可在终端服务器中进行控制的终端服务器控制指令以及可在云端服务器中进行控制的云端服务器控制指令。
由此可知,当采用上述终端服务器控制指令和云端服务器控制指令时,根据终端服务器控制指令在终端服务器中使用运算能力较低的第一机器学习算法计算上述运算任务时,可得到一个准确性较低的运算结果。而根据云端服务器控制指令在云端服务器中使用运算能力较高的第二机器学习算法也计算上述同一个运算任务时,可得到一个准确性较高的运算结果。这样,实现了基于用户的需求,灵活地使用不同的机器学习算法分别执行同一个运算任务,从而用户可分别得到一个准确性较低的运算结果和一个准确性较高的运算结果。并且,由于终端服务器的运算能力较弱,终端运算结果能够先输出,这样避免了用户需要长时间的等待,提高了处理效率,且充分利用了终端服务器与云端服务器两部分的计算资源,使得同一个运算任务可以在终端服务器与云端服务器设备上共同进行。
进一步地,在一个实施例中,所述终端服务器20还用于对所述终端服务器控制指令进行解析得到终端控制信号,并根据所述终端控制信号计算对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果,以及将所述云端服务器控制指令发送至所述云端服务器10。
更进一步地,所述云端服务器10用于接收所述云端服务器控制指令,对所述云端服务器控制指令进行解析得到云端控制信号,并根据所述云端控制信号计算对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果。
在其中一个实施例中,所述硬件性能参数包括运算能力,则所述终端服务器20具体用于获取所述终端服务器20的运算能力和所述云端服务器10的运算能力;根据所述运算任务和所述终端服务器的运算能力选取第一机器学习算法,以及根据所述运算任务和所述云端服务器的运算能力选取第二机器学习算法。
具体地,终端服务器20的硬件性能参数包括终端服务器20的运算能力,云端服务器10的硬件性能参数包括云端服务器10的运算能力。其中,运算能力可从运算模块预设的配置信息中获得。服务器的运算能力影响服务器的运算速度,根据运算模块的运算能力可进一步准确地获得更为合适的机器学习算法。
在具体的一个实施例中,所述第一机器学习算法包括第一神经网络模型,所述第二机器学习算法包括第二神经网络模型。在本实施例中,以神经网络模型为例来具体说明。即,所述机器学习运算的分配系统具体应用于神经网络运算的分配,则该分配系统包括:
所述终端服务器20用于获取需求信息、所述终端服务器20的硬件性能参数和所述云端服务器10的硬件性能参数;根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器20的硬件性能参数选取在所述终端服务器20运行的第一神经网络模型,以及根据所述运算任务和所述云端服务器10的硬件性能参数选取在所述云端服务器10运行的第二神经网络模型;根据选取好的所述第一神经网络模型和所述运算任务生成终端服务器控制指令,以及根据选取好的所述第二神经网络模型和所述运算任务生成云端服务器控制指令;对所述终端服务器控制指令进行解析得到终端控制信号,并根据所述终端控制信号计算对应的第一神经网络模型的运算任务以得到终端运算结果,以及将所述云端服务器控制指令发送至云端服务器10。
所述云端服务器10用于接收所述云端服务器控制指令,对所述云端服务器控制指令进行解析得到云端控制信号,并根据所述云端控制信号计算对应的第二神经网络模型的运算任务以得到云端运算结果。
具体地,当需要根据用户的需求信息来完成运算任务时,分别在终端服务器和云端服务器中都执行该运算任务,以此实现利用不同的神经网络模型来完成同一个运算任务的目的,并可以得到不同的精确程度的运算结果。具体而言,首先对终端服务器和云端服务器的硬件性能参数进行评估,分别选取一个运算能力较低的在终端服务器运行的第一神经网络模型和一个运算能力较高的在云端服务器运行的第二神经网络模型。基于不同的神经网络模型,在终端服务器中生成可在终端服务器中进行控制的终端服务器控制指令以及可在云端服务器中进行控制的云端服务器控制指令。
由此可知,当采用上述终端服务器控制指令和云端服务器控制指令时,根据终端服务器控制指令在终端服务器中使用运算能力较低的第一神经网络模型计算上述运算任务时,可得到一个准确性较低的运算结果。而根据云端服务器控制指令在云端服务器中使用运算能力较高的第二神经网络模型也计算上述同一个运算任务时,可得到一个准确性较高的运算结果。这样,实现了基于用户的需求,灵活地使用不同的神经网络模型分别执行同一个运算任务,从而用户可分别得到一个准确性较低的运算结果和一个准确性较高的运算结果。并且,由于终端服务器的运算能力较弱,终端运算结果能够先输出,这样避免了用户需要长时间的等待,提高了处理效率,且充分利用了终端服务器与云端服务器两部分的计算资源,使得同一个运算任务可以在终端服务器与云端服务器设备上共同进行。
进一步地,在其中一个实施例中,所述终端服务器20还用于将所述终端运算结果输出后,在接收到停止运算指令时,发送所述停止运算指令至所述云端服务器10,以终止所述云端服务器10的运算工作。
具体地,终端服务器20将所述终端运算结果输出后,用户便可以得到了一个准确性较低的运算结果。若用户想获得一个更为准确的运算结果,可等待云端服务器10运算完成后,将云端运算结果通过终端服务器20输出。由此,用户便分别得到了一个准确性较低的运算结果和一个准确性较高的运算结果。然而,若用户在得到一个准确性较低的运算结果后,认为该运算结果已经满足了自己的需求,因此并不想获得准确性较高的运算结果,则用户可通过用户终端输入停止运算指令。分配系统在接收该停止运算指令后,终止云端服务器10的运算工作,即准确性较高的运算结果处于尚未完成状态或即使完成但不再输出状态。
通过设置停止运算的方式,用户可选择只得到一个准确性较低的运算结果,这样可节省用户的时间,并且能够保障机器学习运算的分配系统的运算性能,避免运算资源的浪费。
在其中一个实施例中,所述终端服务器20包括终端控制器单元210、终端运算单元220和终端通信单元230;所述终端控制器单元210分别与所述终端运算单元220和所述终端通信单元230连接。
其中,所述终端控制器单元210用于获取需求信息、所述终端服务器20的硬件性能参数和所述云端服务器10的硬件性能参数;根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器20的硬件性能参数选取在所述终端服务器20运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器10的硬件性能参数选取在所述云端服务器10运行的第二机器学习算法;根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令,并对所述终端服务器控制指令进行解析得到终端控制信号。
所述终端运算单元220用于根据所述终端控制信号计算对应的第一机器学习算法的运算任务以得到终端运算结果;所述终端通信单元230用于将所述云端服务器控制指令发送至所述云端服务器10。
具体地,终端控制器单元210获取用户输入的需求信息并生成对应的运算任务,根据终端服务器20和云端服务器10的硬件性能参数,如运算能力、能耗、精度、速度等进行评估,得到评估结果。然后基于该需求信息和评估结果分别选择一个合适的用于终端服务器的第一机器学习算法和一个合适的用于云端服务器的第二机器学习算法,并根据上述不同机器学习算法的运算能力生成不同的控制指令。
需要说明,包含控制指令的指令集预先存储于终端服务器20与云端服务器10中,终端控制器单元210会根据输入的需求信息分别生成用于终端服务器20的终端服务器控制指令和用于云端服务器10的云端服务器控制指令。
更具体地,在选择使用的神经网络模型时,可以选用如下的数学模型作为一种实施例。首先获取终端服务器20或者云端服务器10的运算能力,指标为每秒可进行的最大浮点/定点运算次数,记为参数C;然后对运算需求进行分析,这里首先是判断宏观的神经网络模型的函数g(x),即判断是选用CNN、RNN还是DNN等,一般来说,图像视觉领域用CNN和DNN较多,文本音频领域用RNN较多,通过基础的筛选可以更快地判断适合的神经网络类型;然后根据能耗W、精度R和速度S进行筛选,可以选择的一种实施例是以Alexnet的性能作为baseline,分别对其他神经网络进行的参数量化,最终的评分函数可以为F(x)=lg(C)*g(x)*S*(R^2)/W,其中的精度和功耗的具体数学形式可以根据用户需求进行更多加权,最终根据不同神经网络在不同硬件设施和用户需求的评分选择最优评分,挑选出最合适的神经网络模型。
需要说明,终端控制器单元210通过对能耗、速度、精度等参数建立数学模型来进行评估,然后选择最适合终端服务器20和云端服务器10的机器学习算法,并进行训练或推理。其中,终端服务器20的硬件配置可以直接通过系统获取,比如安卓/IOS等的系统调用;云端服务器10的硬件配置由终端服务器20通过终端通信单元230发送请求到云端服务器10来获得返回的配置信息。
进一步地,终端控制器单元210还对终端服务器控制指令进行解析,得到终端控制信号,终端控制器单元210发送终端控制信号至终端运算单元220与终端通信单元230。终端运算单元220接收相应的终端控制信号,根据该终端控制信号计算对应的第一机器学习算法的运算任务以得到终端运算结果。终端通信单元230用于将云端服务器控制指令发送至云端服务器10。
可选地,上述第一机器学习算法包括第一神经网络模型。
在其中一个实施例中,所述云端服务器10包括云端控制器单元110、云端运算单元120和云端通信单元130;所述云端控制器单元110分别与所述云端运算单元120和所述云端通信单元130连接,所述云端通信单元130与所述终端通信单元230通信连接,用于在所述云端服务器10与所述终端服务器20之间进行数据交互。
其中,所述云端通信单元130用于接收所述云端服务器控制指令,并将所述云端服务器控制指令发送至所述云端控制器单元110,以及获取云端运算结果并发送至所述终端服务器20;所述云端控制器单元110用于接收所述云端服务器控制指令,对所述云端服务器控制指令进行解析得到云端控制信号;所述云端运算单元120用于根据所述云端控制信号计算对应的第二机器学习算法的运算任务以得到云端运算结果,并将所述云端运算结果通过所述云端通信单元130发送至所述终端服务器20。
具体地,终端控制器单元210将生成的云端服务器控制指令通过终端通信单元230发送至云端服务器10。在云端服务器10中,云端通信单元130接收云端服务器控制指令并发送至云端控制器单元110,云端控制器单元110对云端服务器控制指令进行解析,得到云端控制信号并发送至云端运算单元120与云端通信单元130。云端运算单元120接收相应的云端控制信号,根据该云端控制信号计算对应的第二机器学习算法的运算任务并得到云端运算结果。
可选地,上述第二机器学习算法包括第二神经网络模型。
进一步地,在云端服务器10与终端服务器20分别进行运算的过程中,同时伴随着云端服务器10与终端服务器20之间的数据通信。终端通信单元230根据相应的终端控制信号发送数据给云端通信单元130;反过来,云端通信单元130也根据相应的云端控制信号发送数据给终端通信单元230。由于终端服务器20是为了获取一个准确性较低的运算结果,所消耗的运算时间短,在终端服务器20运算完成后,先把终端运算结果发送至用户的终端设备上。若用户在得到准确性较低的运算结果后,还想要获得一个更为准确的运算结果,则在云端服务器10运算完成后,云端通信单元130发送云端运算结果至终端通信单元230,由终端服务器20将云端运算结果发送至用户的终端设备上。需要说明,终端通信单元230与云端通信单元130之间通过通讯协议分别在终端服务器20和云端服务器10之间进行数据传输。
在其中一个实施例中,终端服务器20还包括终端存储单元240,终端存储单元240分别与终端运算单元220、终端控制器单元210连接,终端存储单元240用于接收终端服务器20的输入数据并进行终端数据的存储。
具体地,终端存储单元240可以根据终端指令生成电路210b生成的终端服务器控制指令确定终端的输入数据并进行数据存储以及对终端运算过程进行存储。可选地,存储的数据格式可以是浮点数,也可以是量化的定点数。
另外,终端存储单元240可以是sram,dram等等能够对数据进行存储的装置或存储空间,用于对终端的数据以及终端的指令进行存储。其中,数据包括但不限于输入神经元、输出神经元、权值、图像以及向量中的至少一种。
更进一步地,在终端服务器20中,终端运算单元220和终端存储单元240是单独的两个部件,在终端运算单元220运算完成后,将终端运算结果先转存到终端存储单元240中,然后再由终端存储单元240和终端通信单元230将终端运算结果进行编码传输通信,而在编码传输通信的过程中,终端运算单元220已经开始下一轮的运算。采用这种工作模式,不会带来过多的等待延时。对于终端运算单元220而言,每轮的等效运算时间是实际运算时间+转存时间。由于转存时间比编码传输时间少很多,这样的方式可以充分调动终端运算单元220的运算能力。使终端运算单元220尽量满载工作。需要说明,可在终端指令生成电路210b内按照上述工作模式进行对应的终端服务器控制指令的生成。可选地,该部分的实现可以完全由算法实现,使用终端服务器20本身的CPU设备即可。
在其中一个实施例中,云端服务器10还包括云端存储单元140,云端存储单元140分别与云端运算单元120、云端控制器单元110连接,云端存储单元140用于接收云端的输入数据并进行云端数据的存储。
具体地,云端存储单元140可以根据云端服务器控制指令确定云端的输入数据并进行数据存储以及对云端运算过程进行存储。可选地,存储的数据格式可以是浮点数,也可以是量化的定点数。
较佳地,云端存储单元140可以是sram,dram等等能够对数据进行存储的装置或存储空间,用于对云端的数据和云端的指令进行存储。其中,数据包括但不限于输入神经元、输出神经元、权值、图像以及向量中的至少一种。
更进一步地,在云端服务器10中,云端运算单元120和云端存储单元140是单独的两个部件,在云端运算单元120运算完成后,将云端运算结果先转存到云端存储单元140中,然后再由云端存储单元140和云端通信单元130将云端运算结果进行编码传输通信,而在编码传输通信的过程中,云端运算单元120已经开始下一轮的运算。采用这种工作模式,不会带来过多的等待延时。对于云端运算单元120而言,每轮的等效运算时间是实际运算时间+转存时间。由于转存时间比编码传输时间少很多,这样的方式可以充分调动云端运算单元120的运算能力。使云端运算单元120尽量满载工作。需要说明,可在终端指令生成电路210b内按照上述工作模式进行对应的云端服务器控制指令的生成。
更为具体地,在其中一个实施例中,所述终端控制器单元210包括终端评估电路210a、终端指令生成电路210b和终端指令解析电路210c;所述终端指令生成电路210b分别与所述终端评估电路210a和所述终端指令解析电路210c连接,所述终端评估电路210a、所述终端指令生成电路210b和所述终端指令解析电路210c分别与所述终端运算单元220、所述终端存储单元240和所述终端通信单元230连接。
所述终端评估电路210a用于获取需求信息、所述终端服务器20的硬件性能参数和所述云端服务器10的硬件性能参数;根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器20的硬件性能参数选取在所述终端服务器20运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器10的硬件性能参数选取在所述云端服务器10运行的第二机器学习算法;所述终端指令生成电路210b用于根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令;所述终端指令解析电路210c用于对所述终端服务器控制指令进行解析得到终端控制信号。
具体地,终端评估电路210a获取用户输入的需求信息,基于需求信息并根据终端服务器20和云端服务器10的硬件性能参数分别选取一个低运算能力的用于终端的第一机器学习算法和一个高运算能力的用于云端的第二机器学习算法。选取完成后,终端指令生成电路210b根据用于终端服务器20的第一机器学习算法的低运算能力和用于云端服务器10的第二机器学习算法的高运算能力分别生成相对应的终端服务器控制指令和云端服务器控制指令。其中,终端服务器控制指令和云端服务器控制指令中的控制指令均可分别包括运算分配指令、访存指令和数据通讯指令。终端服务器控制指令用于在终端服务器20中进行控制,云端服务器控制指令通过终端通信单元230发送至云端通信单元130中,再由云端通信单元130发送至云端控制器单元110以在云端服务器10中进行控制。终端指令解析电路210c用于对终端服务器控制指令进行解析以得到终端控制信号,以及根据终端控制信号使终端运算单元220、终端存储单元240以及终端通信单元230按照终端服务器控制指令运行。
进一步地,在终端指令生成电路210b生成控制指令的过程中,运算分配方案使用的分配方式可以是:根据机器学习算法的运算能力、精度、速度和能耗的不同分配同一个运算任务,即采用不同的机器学习算法但完成同一个运算任务。在终端服务器20中计算一个低运算能力的第一机器学习算法的运算任务,获得一个准确性较低的运算结果,而在云端服务器10中计算一个高运算能力的第二机器学习算法的运算任务。如此可先获得一个准确性较低的运算结果,若用户有进一步需求,可再得到一个准确性较高的运算结果,采用这种分配方式不影响QoS(服务质量)。需要说明,终端服务器20与云端服务器10可同时对同一个运算任务进行计算,也可异时对同一个运算任务进行计算,亦可根据用户的需求选其一对运算任务进行计算。
以传统的神经网络模型为例,存在不同运算能力的神经网络模型。用ImageNet数据集做测试之后,可以获知不同的神经网络模型运算能力是不一样的,其除了与神经网络模型的结构本身的优化有关之外,还与运算复杂性有一定程度的正相关性。举例来说,AlexNet神经网络模型的运算能力较低,但是其时空成本是最小的。而ResNet神经网络模型的运算能力是建立在其更多的运算能力和能耗上。但是,低运算能力的神经网络模型可给出一个准确性较低的运算结果,该运算结果可以在用户对其接受的范围内的。
低运算能力的神经网络模型需要较低的功耗和适当的推理时间,因此,对于终端服务器20相比较于云端服务器10较低性能而言,可以选择在终端服务器20中完成低运算能力的第一神经网络模型的运算,在云端服务器10中完成高运算能力的第二神经网络模型的运算。并且由用户需求决定是否进一步获取高精度的运算分类结果。这样,实现了可以先提供用户一个准确性较低的运算结果,避免等待时间过长,同时也为用户提供了场景的选择。
访存指令是在运算分配的基础上的内存管理指令,用于控制终端存储单元240或云端存储单元140进行数据存储。数据通讯指令是对云端服务器10和终端服务器20的数据交互,用于控制终端通信单元230与云端通信单元130之间进行数据交互。
更进一步地,可以进行对多个终端服务器20与云端服务器10的系统级调度,多个终端服务器20与云端服务器10共同完成一个复杂度很高的系统级任务。
在其中一个实施例中,云端控制器单元110包括云端指令解析电路110a,云端指令解析电路110a分别与云端运算单元120、云端存储单元140和云端通信单元130连接。
具体地,在云端服务器10中,云端指令解析电路110a用于接收云端服务器控制指令,并对云端服务器控制指令进行解析,获得云端控制信号,以及根据云端控制信号使云端运算单元120、云端存储单元140以及云端通信单元130按照云端服务器控制指令运行,需要清楚的是,云端运算单元120、云端存储单元140以及云端通信单元130的运行原理与上述终端运算单元220、终端存储单元240以及终端通信单元230的运行原理相同,在此不再赘述。
云端指令解析电路110a通过解析云端服务器控制指令,得到云端控制信号,并将云端控制信号发送给云端服务器10的其它部件,使得云端服务器10内可以有序地完成云端神经网络的运算,极大地加速了云端神经网络的运算速度。
在一些实施例中,终端运算单元220与终端通信单元230连接,且终端存储单元240与终端通信单元230连接。
具体地,终端通信单元230可以对终端运算单元220和终端存储单元240的输出数据进行编码并发送至云端通信单元130。反过来,终端通信单元230也可以接收云端通信单元130发送的数据,并对该数据进行解码再次发送至终端运算单元220和终端存储单元240。通过采用这样的设计方式,可以减轻终端控制器单元210的任务量,使得终端控制器单元210可以更细化地完成控制指令的生成过程。
在另一些实施例中,云端运算单元120与云端通信单元130连接,云端存储单元140与云端通信单元130连接。
具体地,云端通信单元130可以对云端运算单元120和云端存储单元140的输出数据进行编码并发送至终端通信单元230。反过来,云端通信单元130也可以接收终端通信单元230发送的数据,并对该据进行解码再次发送至云端运算单元120和云端存储单元140。
进一步地,在一些实施例中,终端运算单元220可以是终端服务器20本身的运算部件,云端运算单元120可以是云端服务器10本身的运算部件。比如:运算部件可以是CPU,可以是GPU,也可以是神经网络芯片。优选地,终端运算单元220和云端运算单元120可以是人工神经网络芯片的数据处理单元中的运算单元,用于根据存储单元(终端存储单元240或云端存储单元140)中存储的控制指令对数据执行相应的运算。
在一个可选的实施例中,请参阅图5A,云端控制器单元110与终端控制器单元210为控制器单元311,云端运算单元120与终端运算单元220为运算单元312,
该运算单元312包括:一个主处理电路3101和多个从处理电路3102;
控制器单元311,用于获取输入数据以及计算指令;在一种可选方案中,具体的,获取输入数据以及计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
上述计算指令包括但不限于:正向运算指令或反向训练指令,或其他神经网络运算指令等等,例如卷积运算指令,本申请具体实施方式并不限制上述计算指令的具体表现形式。
控制器单元311,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
主处理电路3101,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;
多个从处理电路3102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
主处理电路3101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
本申请提供的技术方案将运算单元设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选的,上述机器学习计算具体可以包括:人工神经网络运算,上述输入数据具体可以包括:输入神经元数据和权值数据。上述计算结果具体可以为:人工神经网络运算的结果即输出神经元数据。
对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
上述机器学习计算还可以包括支持向量机运算,k-近邻(k-nn)运算,k-均值(k-means)运算,主成分分析运算等等。为了描述的方便,下面以人工神经网络运算为例来说明机器学习计算的具体方案。
对于人工神经网络运算,如果该人工神经网络运算具有多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
可选的,该控制器单元包括:指令缓存单元3110、指令处理单元3111和存储队列单元3113;
指令缓存单元3110,用于存储所述人工神经网络运算关联的计算指令;
所述指令处理单元3111,用于对所述计算指令解析得到多个运算指令;
存储队列单元3113,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
举例说明,在一个可选的技术方案中,主运算处理电路也可以包括一个控制器单元,该控制器单元可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方案中,从运算处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。
在一种可选方案中,该计算指令的结构可以如下表所示。
操作码 寄存器或立即数 寄存器/立即数 ...
上表中的省略号表示可以包括多个寄存器或立即数。
在另一种可选方案中,该计算指令可以包括:一个或多个操作域以及一个操作码。该计算指令可以包括神经网络运算指令。以神经网络运算指令为例,如表1所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以是一个或者多个寄存器的号码。
Figure BDA0001827295530000161
上述寄存器可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据,该数据具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
可选的,该控制器单元还可以包括:
所述依赖关系处理单元3112,用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
在另一种可选实施例中,运算单元312如图5C所示,可以包括一个主处理电路3101和多个从处理电路3102。在一个实施例里,如图5C所示,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是,如图5C所示的K个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。
K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发。
可选的,如图5D所示,该主处理电路3101还可以包括:转换处理电路3101a、激活处理电路3101b、加法处理电路3101c中的一种或任意组合;
转换处理电路3101a,用于将主处理电路接收的数据块或中间结果执行第一数据结构与第二数据结构之间的互换(例如连续数据与离散数据的转换);或将主处理电路接收的数据块或中间结果执行第一数据类型与第二数据类型之间的互换(例如定点类型与浮点类型的转换);
激活处理电路3101b,用于执行主处理电路内数据的激活运算;
加法处理电路3101c,用于执行加法运算或累加运算。
所述主处理电路,用于将确定所述输入神经元为广播数据,权值为分发数据,将分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述从处理电路;
所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述主处理电路;
所述主处理电路,用于将多个从处理电路发送的中间结果进行处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
所述从处理电路包括:乘法处理电路;
所述乘法处理电路,用于对接收到的数据块执行乘积运算得到乘积结果;
转发处理电路(可选的),用于将接收到的数据块或乘积结果转发。
累加处理电路,所述累加处理电路,用于对该乘积结果执行累加运算得到该中间结果。
另一个实施例里,该运算指令为矩阵乘以矩阵的指令、累加指令、激活指令等等计算指令。
下面通过神经网络运算指令来说明如图5A所示的计算装置的具体计算方法。对于神经网络运算指令来说,其实际需要执行的公式可以为:s=s(∑wxi+b),其中,即将权值w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果s。
在一种可选的实施方案中,如图5E所示,所述运算单元包括:树型模块340,所述树型模块340包括:一个根端口3401和多个支端口3402,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
上述树型模块具有收发功能,例如如图5E所示,该树型模块即为发送功能,如图5I所示,该树型模块即为接收功能。
所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
可选的,该树型模块为计算装置的可选择结果,其可以包括至少1层节点,该节点为具有转发功能的线结构,该节点本身可以不具有计算功能。如树型模块具有零层节点,即无需该树型模块。
可选的,该树型模块可以为n叉树结构,例如,如图5F所示的二叉树结构,当然也可以为三叉树结构,该n可以为大于等于2的整数。本申请具体实施方式并不限制上述n的具体取值,上述层数也可以为2,从处理电路可以连接除倒数第二层节点以外的其他层的节点,例如可以连接如图5F所示的倒数第一层的节点。
可选的,上述运算单元可以携带单独的缓存,如图5G所示,可以包括:神经元缓存单元363,该神经元缓存单元363缓存该从处理电路的输入神经元向量数据和输出神经元值数据。
如图5H所示,该运算单元还可以包括:权值缓存单元364,用于缓存该从处理电路在计算过程中需要的权值数据。
在一种可选实施例中,运算单元312如图5B所示,可以包括分支处理电路3103;其具体的连接结构如图5B所示,其中,
主处理电路3101与分支处理电路3103(一个或多个)连接,分支处理电路3103与一个或多个从处理电路3102连接;
分支处理电路3103,用于执行转发主处理电路3101与从处理电路3102之间的数据或指令。
在一种可选实施例中,以神经网络运算中的全连接运算为例,过程可以为:y=f(wx+b),其中,x为输入神经元矩阵,w为权值矩阵,b为偏置标量,f为激活函数,具体可以为:sigmoid函数,tanh、relu、softmax函数中的任意一个。这里假设为二叉树结构,具有8个从处理电路,其实现的方法可以为:
控制器单元从存储单元内获取输入神经元矩阵x,权值矩阵w以及全连接运算指令,将输入神经元矩阵x,权值矩阵w以及全连接运算指令传输给主处理电路;
主处理电路确定该输入神经元矩阵x为广播数据,确定权值矩阵w为分发数据,将权值矩阵w拆分成8个子矩阵,然后将8个子矩阵通过树型模块分发给8个从处理电路,将输入神经元矩阵x广播给8个从处理电路,
从处理电路并行执行8个子矩阵与输入神经元矩阵x的乘法运算和累加运算得到8个中间结果,将8个中间结果发送给主处理电路;
主处理电路,用于将8个中间结果排序得到wx的运算结果,将该运算结果执行偏置b的运算后执行激活操作得到最终结果y,将最终结果y发送至控制器单元,控制器单元将该最终结果y输出或存储至存储单元内。
如图5A所示的计算装置执行神经网络正向运算指令的方法具体可以为:
控制器单元从指令存储单元内提取神经网络正向运算指令、神经网络运算指令对应的操作域以及至少一个操作码,控制器单元将该操作域传输至数据访问单元,将该至少一个操作码发送至运算单元。
控制器单元从存储单元内提取该操作域对应的权值w和偏置b(当b为0时,不需要提取偏置b),将权值w和偏置b传输至运算单元的主处理电路,控制器单元从存储单元内提取输入数据Xi,将该输入数据Xi发送至主处理电路。
主处理电路依据该至少一个操作码确定为乘法运算,确定输入数据Xi为广播数据,确定权值数据为分发数据,将权值w拆分成n个数据块;
控制器单元的指令处理单元依据该至少一个操作码确定乘法指令、偏置指令和累加指令,将乘法指令、偏置指令和累加指令发送至主处理电路,主处理电路将该乘法指令、输入数据Xi以广播的方式发送给多个从处理电路,将该n个数据块分发给该多个从处理电路(例如具有n个从处理电路,那么每个从处理电路发送一个数据块);多个从处理电路,用于依据该乘法指令将该输入数据Xi与接收到的数据块执行乘法运算得到中间结果,将该中间结果发送至主处理电路,该主处理电路依据该累加指令将多个从处理电路发送的中间结果执行累加运算得到累加结果,依据该偏置指令将该累加结果执行加偏置b得到最终结果,将该最终结果发送至该控制器单元。
另外,加法运算和乘法运算的顺序可以调换。
本申请提供的技术方案通过一个指令即神经网络运算指令即实现了神经网络的乘法运算以及偏置运算,在神经网络计算的中间结果均无需存储或提取,减少了中间数据的存储以及提取操作,所以其具有减少对应的操作步骤,提高神经网络的计算效果的优点。
本申请还揭露了一个机器学习运算装置,其包括一个或多个在本申请中提到的计算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上计算装置时,计算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
在其中一个实施例中,请参阅图6,提供了一种机器学习运算的分配方法,该分配方法包括如下步骤:
S702,获取需求信息、所述终端服务器的硬件性能参数和所述云端服务器的硬件性能参数。
具体地,用户通过终端设备输入自身的需求,终端服务器获取用户输入的需求信息。用户输入的需求信息主要由三方面决定,一方面是功能需求信息,另一方面是准确度需求信息,再一方面是内存需求信息。比如,对于功能需求信息而言,比如识别所有动物需要的数据集和只需要识别猫的数据集是存在包含关系的,如果用户只是需要某一垂直领域的功能需求的话,则只需将用户的需求通过控制部分的输入获取单元进行输入,并且根据自身内存大小以及所需精度的大小选择好对应的数据集。终端服务器获取需求信息、终端服务器的硬件性能参数和云端服务器的硬件性能参数,硬件性能参数可包括运算能力、能耗、速度和精度。
S704,根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器的硬件性能参数在所述云端服务器运行的第二机器学习算法。
具体地,在终端服务器的中,终端控制器单元根据所述需求信息生成对应的运算任务。并且,终端控制器单元中的终端评估电路对终端服务器以及云端服务器的运算能力、能耗、速度、精度建立数学模型进行评估,然后在终端服务器和云端服务器各选择最为适合的一种机器学习算法,然后进行训练或推理。
S706,根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令。
具体地,在终端服务器中,终端控制器单元根据用于终端服务器的第一机器学习算法的规模,并根据该第一机器学习算法的运算能力,将运算任务进行分配;以及根据用于云端服务器的第二机器学习算法的规模,并根据该第二机器学习算法的运算能力,将上述运算任务进行分配,以此让终端服务器与云端服务器分别完成同一个运算任务。在终端终端控制器单元中,终端指令生成电路会根据用户的需求和选用的数据集,并基于不同的机器学习算法的运算能力生成相对应的终端服务器控制指令与云端服务器控制指令。
更进一步地,终端通信单元与云端通信单元将控制指令在终端服务器和云端服务器之间进行传输。具体地,在控制指令生成后,终端通信单元与云端通信单元之间通过通讯协议分别在终端服务器和云端服务器之间进行传输。
上述机器学习运算的分配方法,当需要根据用户的需求信息来完成运算任务时,分别在终端服务器和云端服务器中都执行该运算任务,以此实现利用不同的机器学习算法来完成同一个运算任务的目的,并可以得到不同的精确程度的运算结果。具体而言,首先对终端服务器和云端服务器的硬件性能参数进行评估,分别选取一个运算能力较低的在终端服务器运行的第一机器学习算法和一个运算能力较高的在云端服务器运行的第二机器学习算法。基于不同的机器学习算法,在终端服务器中生成可在终端服务器中进行控制的终端服务器控制指令以及可在云端服务器中进行控制的云端服务器控制指令。
由此可知,当采用上述终端服务器控制指令和云端服务器控制指令时,根据终端服务器控制指令在终端服务器中使用运算能力较低的第一机器学习算法计算上述运算任务时,可得到一个准确性较低的运算结果。而根据云端服务器控制指令在云端服务器中使用运算能力较高的第二机器学习算法也计算上述同一个运算任务时,可得到一个准确性较高的运算结果。这样,实现了基于用户的需求,灵活地使用不同的机器学习算法分别执行同一个运算任务,从而用户可分别得到一个准确性较低的运算结果和一个准确性较高的运算结果。并且,由于终端服务器的运算能力较弱,终端运算结果能够先输出,这样避免了用户需要长时间的等待,提高了处理效率,且充分利用了终端服务器与云端服务器两部分的计算资源,使得同一个运算任务可以在终端服务器与云端服务器设备上共同进行。
进一步地,在一个实施例中,该方法还包括以下步骤:
S708,分别对所述终端服务器控制指令和所述云端服务器控制指令进行解析,根据所述终端服务器控制指令获得终端控制信号,以及根据所述云端服务器控制指令获得云端控制信号。
具体地,终端控制器单元将云端服务器控制指令发送至云端服务器后,云端控制器单元中的云端指令解析电路对发来的云端服务器控制指令进行解析,获得云端控制信号,在终端控制器单元中,终端指令解析电路对终端服务器控制指令进行解析,获得终端控制信号。
S710,根据所述终端控制信号提取终端待处理数据,以及根据所述云端控制信号提取云端待处理数据。
具体地,待处理数据包括训练数据或测试数据的一种或多种。在云端服务器中,云端控制器单元根据云端控制信号提取对应的云端训练数据或者云端测试数据,发送到云端运算单元的缓冲区,同时可以预分配一定的内存空间,用于实现运算中间过程的数据交互。在终端服务器中,终端控制器单元根据终端控制信号提取对应的终端训练数据或者终端测试数据,发送到终端运算单元的缓冲区,同时可以预分配一定的内存空间,用于实现运算中间过程的数据交互。
S712,根据所述终端待处理数据计算所述终端服务器中对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果,和/或根据所述云端待处理数据计算所述云端服务器中对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果。
具体地,在终端服务器中,终端控制器单元发送终端待处理数据至终端运算单元,终端运算单元根据传送的终端待处理数据计算终端服务器中对应的每个阶段的第一机器学习算法的运算任务量。在云端服务器中,云端控制器单元发送云端待处理数据至云端运算单元,云端运算单元根据传送的云端待处理数据计算云端服务器中对应的每个阶段的第二机器学习算法的运算任务量。
在云端服务器与终端服务器进行运算的过程中,同时伴随着云端服务器与终端服务器之间的数据通信,终端通信单元根据相应的终端控制信号发送数据给云端通信单元,反过来,云端通信单元也根据相应的云端控制信号发送数据给终端通信单元,将终端运算结果与云端运算结果通过终端服务器发送至用户的终端设备上。
在其中一个实施例中,涉及根据服务器的运算能力选取机器学习算法的具体过程。在本实施例中,S704包括:
S7042,获取所述终端服务器的运算能力和所述云端服务器的运算能力;
S7044,根据所述运算任务、所述终端服务器的运算能力选取第一机器学习算法,以及根据所述运算任务、所述云端服务器的运算能力选取第二机器学习算法。
具体地,需要清楚,终端服务器的运算能力相对于云端服务器的运算能力要弱。因此,相对应地,根据终端服务器的运算能力选择一个运算能力较低的第一机器学习算法,而根据云端服务器的运算能力选择一个运算能力较高的第二机器学习算法。运算能力的高低影响计算时间以及计算精度,比如,高运算能力的第二机器学习算法可得到一个更为准确性较高的运算结果,但可能计算时间较长。
在其中一个实施例中,涉及终止计算云端运算结果的具体过程,其中,该分配方法还包括:
S714,将所述终端运算结果输出后,在接收到停止运算指令时,终止所述云端服务器的运算工作。
具体地,终端服务器将终端运算结果输出后,此时,用户可以得到一个准确性较低的运算结果。若用户想获得一个更为准确的运算结果,可等待云端服务器运算完成后,将云端运算结果通过终端服务器输出,这时,用户便分别得到了一个准确性较低的运算结果和一个准确性较高的运算结果。然而,若用户在得到一个准确性较低的运算结果后,并不想获得更准确性的运算结果,则通过用户终端输入停止运算指令,分配系统接收该停止运算指令,并终止云端服务器的运算工作,即准确性较高的运算结果处于尚未完成状态或即使完成但不再输出状态。
在其中一个实施例中,涉及对终端服务器控制指令进行解析的具体过程。其中,S708具体包括:
S7082,利用终端服务器对所述终端服务器控制指令进行解析,获得终端控制信号;
S7084,根据所述终端控制信号提取相对应的终端训练数据或者终端测试数据。
具体地,终端指令解析电路用于对终端服务器控制指令进行解析以得到终端控制信号,并根据终端控制信号提取相对应的终端训练数据或者终端测试数据。其中,数据包括图像、音频、文本等。图像包括静态图片、组成视频的图片、或视频等。音频包括人声音频、乐曲、噪声等。文本包括结构化文本、各种语言的文本字符等。
在其中一个实施例中,涉及对云端服务器控制指令进行解析的具体过程。其中,S708还包括:
S7081,利用云端服务器对所述云端服务器控制指令进行解析,获得云端控制信号;
S7083,根据所述云端控制信号提取相对应的云端训练数据或者云端测试数据。
具体地,云端指令解析电路用于对云端服务器控制指令进行解析以得到云端控制信号,并根据云端控制信号提取相对应的云端训练数据或者云端测试数据。
在一个实施例中,涉及运算结果如何得出的具体过程。其中,S712具体包括:
S7122,利用终端服务器并根据所述终端训练数据或者终端测试数据,计算所述终端服务器中对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果。
在另一个实施例中,S712具体包括:
S7124,利用云端服务器并根据所述云端训练数据或者云端测试数据,计算所述云端服务器中对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果。
结合上述实施例具体说明,在云端服务器中,云端运算单元根据云端训练数据或者云端测试数据执行对应的每个阶段的第二机器学习算法的运算,得到云端运算结果。在终端服务器中,终端运算单元根据终端训练数据或者终端测试数据执行对应的每个阶段的第一机器学习算法的运算,得到终端运算结果。在云端服务器和终端服务器的运算过程中,通过云端通信单元和终端通信单元共同完成终端服务器和云端服务器之间的数据通信。云端服务器和终端服务器之间的运算部分和存储部分的数据通信分别通过云端控制器单元和终端通信单元进行转发,最终由云端通信单元和终端通信单元共同进行交互。
由于在终端服务器中使用低运算能力的神经网络计算上述运算任务,因此,可先得到一个准确性较低的运算结果,之后,基于用户的进一步的需求信息,可进一步得到在云端服务器中使用高运算能力的神经网络得到的准确性较高的运算结果。
应该理解的是,虽然图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (29)

1.一种机器学习运算的分配系统,其特征在于,包括:终端服务器和云端服务器;
所述终端服务器用于根据需求信息生成对应的运算任务,并根据所述运算任务和终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和云端服务器的硬件性能参数选取在所述云端服务器运行的第二机器学习算法;
根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令。
2.根据权利要求1所述的机器学习运算的分配系统,其特征在于,所述终端服务器还用于对所述终端服务器控制指令进行解析得到终端控制信号,并根据所述终端控制信号计算对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果,以及将所述云端服务器控制指令发送至所述云端服务器。
3.根据权利要求1所述的机器学习运算的分配系统,其特征在于,所述云端服务器用于接收所述云端服务器控制指令,对所述云端服务器控制指令进行解析得到云端控制信号,并根据所述云端控制信号计算对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果。
4.根据权利要求1所述的机器学习运算的分配系统,其特征在于,所述硬件性能参数包括运算能力,
所述终端服务器执行根据所述运算任务和终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和云端服务器的硬件性能参数选取在所述云端服务器运行的第二机器学习算法,包括:
获取所述终端服务器的运算能力和所述云端服务器的运算能力;
根据所述运算任务和所述终端服务器的运算能力选取第一机器学习算法,以及根据所述运算任务和所述云端服务器的运算能力选取第二机器学习算法。
5.根据权利要求1所述的机器学习运算的分配系统,其特征在于,所述第一机器学习算法包括第一神经网络模型,所述第二机器学习算法包括第二神经网络模型。
6.根据权利要求1-5任一所述的机器学习运算的分配系统,其特征在于,所述终端服务器还用于将所述终端运算结果输出后,在接收到停止运算指令时,发送所述停止运算指令至所述云端服务器,以终止所述云端服务器的运算工作。
7.根据权利要求1-5任一所述的机器学习运算的分配系统,其特征在于,所述终端服务器包括终端控制器单元、终端运算单元和终端通信单元;所述终端控制器单元分别与所述终端运算单元和所述终端通信单元连接;
其中,所述终端控制器单元用于获取需求信息、所述终端服务器的硬件性能参数和所述云端服务器的硬件性能参数;根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器的硬件性能参数选取在所述云端服务器运行的第二机器学习算法;根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令,并对所述终端服务器控制指令进行解析得到终端控制信号;
所述终端运算单元用于根据所述终端控制信号计算对应的第一机器学习算法的运算任务以得到终端运算结果;
所述终端通信单元用于将所述云端服务器控制指令发送至所述云端服务器。
8.根据权利要求7所述的机器学习运算的分配系统,其特征在于,所述云端服务器包括云端控制器单元、云端运算单元和云端通信单元;所述云端控制器单元分别与所述云端运算单元和所述云端通信单元连接,所述云端通信单元与所述终端通信单元通信连接,用于在所述云端服务器与所述终端服务器之间进行数据交互;
其中,所述云端通信单元用于接收所述云端服务器控制指令,并将所述云端服务器控制指令发送至所述云端控制器单元,以及获取云端运算结果并发送至所述终端服务器;
所述云端控制器单元用于接收所述云端服务器控制指令,对所述云端服务器控制指令进行解析得到云端控制信号;
所述云端运算单元用于根据所述云端控制信号计算对应的第二机器学习算法的运算任务以得到云端运算结果,并将所述云端运算结果通过所述云端通信单元发送至所述终端服务器。
9.根据权利要求8所述的机器学习运算的分配系统,其特征在于,所述终端运算单元或所述云端运算单元包括:一个主处理电路和多个从处理电路;
所述终端控制器单元或所述云端控制器单元,用于获取输入数据以及计算指令;
所述终端控制器单元或所述云端控制器单元,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
所述主处理电路,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
10.根据权利要求9所述的机器学习运算的分配系统,其特征在于,所述主处理电路包括:依赖关系处理单元;
所述依赖关系处理单元,用于确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系。
11.根据权利要求8所述的机器学习运算的分配系统,其特征在于,所述终端运算单元或所述云端运算单元还包括:树型模块,所述树型模块包括:一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
12.根据权利要求9所述的机器学习运算的分配系统,其特征在于,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个基础电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;
所述K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发;
所述主处理电路,用于确定输入神经元为广播数据,权值为分发数据,将一个输入数据分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述K个从处理电路;
所述K个从处理电路,用于转换所述主处理电路与所述多个从处理电路之间的数据;
所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述K个从处理电路;
所述主处理电路,用于将所述K个从处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
13.根据权利要求7所述的机器学习运算的分配系统,其特征在于,所述终端服务器还包括终端存储单元;所述终端存储单元分别与所述终端控制器单元、所述终端运算单元连接,用于接收所述终端服务器的输入数据并存储。
14.根据权利要求8所述的机器学习运算的分配系统,其特征在于,所述云端服务器还包括云端存储单元;所述云端存储单元分别与所述云端控制器单元、所述云端运算单元连接,用于接收所述云端服务器的输入数据并存储。
15.根据权利要求13所述的机器学习运算的分配系统,其特征在于,所述终端控制器单元包括终端评估电路、终端指令生成电路和终端指令解析电路;
所述终端指令生成电路分别与所述终端评估电路和所述终端指令解析电路连接,所述终端评估电路、所述终端指令生成电路和所述终端指令解析电路分别与所述终端运算单元、所述终端存储单元和所述终端通信单元连接;
所述终端评估电路用于获取需求信息、所述终端服务器的硬件性能参数和所述云端服务器的硬件性能参数;根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器的硬件性能参数选取在所述云端服务器运行的第二机器学习算法;
所述终端指令生成电路用于根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令;
所述终端指令解析电路用于对所述终端服务器控制指令进行解析得到终端控制信号。
16.根据权利要求13所述的机器学习运算的分配系统,其特征在于,所述终端运算单元与所述终端通信单元连接,且所述终端存储单元与所述终端通信单元连接。
17.根据权利要求14所述的机器学习运算的分配系统,其特征在于,所述云端控制器单元包括云端指令解析电路;所述云端指令解析电路分别与所述云端运算单元、所述云端存储单元和所述云端通信单元连接。
18.根据权利要求14所述的机器学习运算的分配系统,其特征在于,所述云端运算单元与所述云端通信单元连接,且所述云端存储单元与所述云端通信单元连接。
19.一种机器学习运算的分配方法,其特征在于,包括:
获取需求信息、终端服务器的硬件性能参数和云端服务器的硬件性能参数;
根据所述需求信息生成对应的运算任务,并根据所述运算任务和所述终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器的硬件性能参数在所述云端服务器运行的第二机器学习算法;
根据所述第一机器学习算法和所述运算任务生成终端服务器控制指令,以及根据所述第二机器学习算法和所述运算任务生成云端服务器控制指令。
20.根据权利要求19所述的机器学习运算的分配方法,其特征在于,还包括:
分别对所述终端服务器控制指令和所述云端服务器控制指令进行解析,根据所述终端服务器控制指令获得终端控制信号,以及根据所述云端服务器控制指令获得云端控制信号;
根据所述终端控制信号提取终端待处理数据,以及根据所述云端控制信号提取云端待处理数据;
根据所述终端待处理数据计算所述终端服务器中对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果,和/或根据所述云端待处理数据计算所述云端服务器中对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果。
21.根据权利要求19所述的机器学习运算的分配方法,其特征在于,
所述根据所述运算任务和所述终端服务器的硬件性能参数选取在所述终端服务器运行的第一机器学习算法,以及根据所述运算任务和所述云端服务器的硬件性能参数在所述云端服务器运行的第二机器学习算法,包括:
获取所述终端服务器的运算能力和所述云端服务器的运算能力;
根据所述运算任务、所述终端服务器的运算能力选取第一机器学习算法,以及根据所述运算任务、所述云端服务器的运算能力选取第二机器学习算法。
22.根据权利要求19所述的机器学习运算的分配方法,其特征在于,所述第一机器学习算法包括第一神经网络模型,所述第二机器学习算法包括第二神经网络模型。
23.根据权利要求19-22任一所述的机器学习运算的分配方法,其特征在于,还包括:
将所述终端运算结果输出后,在接收到停止运算指令时,终止所述云端服务器的运算工作。
24.根据权利要求20或22所述的机器学习运算的分配方法,其特征在于,
所述分别对所述终端服务器控制指令和所述云端服务器控制指令进行解析,根据所述终端服务器控制指令获得终端控制信号,以及根据所述云端服务器控制指令获得云端控制信号,包括:
利用终端服务器对所述终端服务器控制指令进行解析,获得终端控制信号;
根据所述终端控制信号提取相对应的终端训练数据或者终端测试数据。
25.根据权利要求20或22所述的机器学习运算的分配方法,其特征在于,
所述分别对所述终端服务器控制指令和所述云端服务器控制指令进行解析,根据所述终端服务器控制指令获得终端控制信号,以及根据所述云端服务器控制指令获得云端控制信号,还包括:
利用云端服务器对所述云端服务器控制指令进行解析,获得云端控制信号;
根据所述云端控制信号提取相对应的云端训练数据或者云端测试数据。
26.根据权利要求24所述的机器学习运算的分配方法,其特征在于,
所述根据所述终端待处理数据计算所述终端服务器中对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果,包括:
利用终端服务器并根据所述终端训练数据或者终端测试数据,计算所述终端服务器中对应的每个阶段的第一机器学习算法的运算任务以得到终端运算结果。
27.根据权利要求25所述的机器学习运算的分配方法,其特征在于,所述根据所述云端待处理数据计算所述云端服务器中对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果,包括:
利用云端服务器并根据所述云端训练数据或者云端测试数据,计算所述云端服务器中对应的每个阶段的第二机器学习算法的运算任务以得到云端运算结果。
28.根据权利要求19所述的机器学习运算的分配方法,其特征在于,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,主处理电路连接所述多个从处理电路中的k个从处理电路,k个基础电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;
所述K个从处理电路在所述主处理电路以及多个从处理电路之间的数据以及指令的转发;
所述主处理电路确定所述输入神经元为广播数据,权值为分发数据,将一个输入数据分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述K个从处理电路;
所述K个从处理电路转换所述主处理电路与所述多个从处理电路之间的数据;
所述多个从处理电路依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述K个从处理电路;
所述主处理电路将所述K个从处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
29.根据权利要求19所述的机器学习运算的分配方法,其特征在于,运算单元还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路;
主处理电路确定输入神经元为广播数据,权值为分发数据,将一个输入神经元分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块、权值广播数据以及多个运算指令中的至少一个运算指令发送给所述分支处理电路;
所述分支处理电路转发所述主处理电路与所述多个从处理电路之间的数据块、广播数据权值以及运算指令;
所述多个从处理电路依据该运算指令对接收到的数据块以及广播数据权值执行运算得到中间结果,并将中间结果传输给所述分支处理电路;
所述主处理电路将分支处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
CN201811190161.6A 2018-10-12 2018-10-12 机器学习运算的分配系统及方法 Active CN111047045B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811190161.6A CN111047045B (zh) 2018-10-12 2018-10-12 机器学习运算的分配系统及方法
PCT/CN2019/109552 WO2020073874A1 (zh) 2018-10-12 2019-09-30 机器学习运算的分配系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811190161.6A CN111047045B (zh) 2018-10-12 2018-10-12 机器学习运算的分配系统及方法

Publications (2)

Publication Number Publication Date
CN111047045A true CN111047045A (zh) 2020-04-21
CN111047045B CN111047045B (zh) 2021-03-19

Family

ID=70229741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811190161.6A Active CN111047045B (zh) 2018-10-12 2018-10-12 机器学习运算的分配系统及方法

Country Status (1)

Country Link
CN (1) CN111047045B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112217863A (zh) * 2020-09-04 2021-01-12 江苏方天电力技术有限公司 一种边缘设备资源高效利用方法
CN112866404A (zh) * 2021-02-03 2021-05-28 视若飞信息科技(上海)有限公司 一种半云系统及执行方法
WO2022001496A1 (zh) * 2020-06-30 2022-01-06 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
WO2023230969A1 (zh) * 2022-06-01 2023-12-07 北京小米移动软件有限公司 人工智能模型的确定方法及装置、通信设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160071014A1 (en) * 2014-09-08 2016-03-10 Pivotal Software, Inc. Stream processing with multiple connections between local and central modelers
US20170024660A1 (en) * 2015-07-23 2017-01-26 Qualcomm Incorporated Methods and Systems for Using an Expectation-Maximization (EM) Machine Learning Framework for Behavior-Based Analysis of Device Behaviors
CN107087019A (zh) * 2017-03-14 2017-08-22 西安电子科技大学 一种端云协同计算架构及任务调度装置及方法
CN107316078A (zh) * 2016-04-27 2017-11-03 北京中科寒武纪科技有限公司 用于执行人工神经网络自学习运算的装置和方法
CN107783840A (zh) * 2017-10-27 2018-03-09 福州瑞芯微电子股份有限公司 一种分布式多层深度学习资源分配方法和装置
CN108243216A (zh) * 2016-12-26 2018-07-03 华为技术有限公司 数据处理的方法、端侧设备、云侧设备与端云协同系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160071014A1 (en) * 2014-09-08 2016-03-10 Pivotal Software, Inc. Stream processing with multiple connections between local and central modelers
US20170024660A1 (en) * 2015-07-23 2017-01-26 Qualcomm Incorporated Methods and Systems for Using an Expectation-Maximization (EM) Machine Learning Framework for Behavior-Based Analysis of Device Behaviors
CN107316078A (zh) * 2016-04-27 2017-11-03 北京中科寒武纪科技有限公司 用于执行人工神经网络自学习运算的装置和方法
CN108243216A (zh) * 2016-12-26 2018-07-03 华为技术有限公司 数据处理的方法、端侧设备、云侧设备与端云协同系统
CN107087019A (zh) * 2017-03-14 2017-08-22 西安电子科技大学 一种端云协同计算架构及任务调度装置及方法
CN107783840A (zh) * 2017-10-27 2018-03-09 福州瑞芯微电子股份有限公司 一种分布式多层深度学习资源分配方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SURAT TEERAPITTAYANON等: "Distributed Deep Neural Networks over the Cloud, the Edge and End Devices", 《ARXIV:1709.01921V1》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022001496A1 (zh) * 2020-06-30 2022-01-06 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN112217863A (zh) * 2020-09-04 2021-01-12 江苏方天电力技术有限公司 一种边缘设备资源高效利用方法
CN112217863B (zh) * 2020-09-04 2023-07-18 江苏方天电力技术有限公司 一种边缘设备资源高效利用方法
CN112866404A (zh) * 2021-02-03 2021-05-28 视若飞信息科技(上海)有限公司 一种半云系统及执行方法
WO2023230969A1 (zh) * 2022-06-01 2023-12-07 北京小米移动软件有限公司 人工智能模型的确定方法及装置、通信设备及存储介质

Also Published As

Publication number Publication date
CN111047045B (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN111047045B (zh) 机器学习运算的分配系统及方法
US11544539B2 (en) Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
CN110689138B (zh) 运算方法、装置及相关产品
US11307865B2 (en) Data processing apparatus and method
EP4036724A1 (en) Method for splitting neural network model by using multi-core processor, and related product
US11307864B2 (en) Data processing apparatus and method
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
CN109711539B (zh) 运算方法、装置及相关产品
US11663491B2 (en) Allocation system, method and apparatus for machine learning, and computer device
Zainab et al. Fpga based implementations of rnn and cnn: A brief analysis
CN111897579A (zh) 图像数据处理方法、装置、计算机设备和存储介质
CN109409510B (zh) 神经元电路、芯片、系统及其方法、存储介质
CN110826708B (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN112219209A (zh) 具有有可重配置的核级和向量级并行度的并行计算架构
WO2022068663A1 (zh) 内存分配方法、相关设备及计算机可读存储介质
CN111338695B (zh) 基于流水线技术的数据处理方法及相关产品
Kang et al. GANPU: An energy-efficient multi-DNN training processor for GANs with speculative dual-sparsity exploitation
US20220004858A1 (en) Method for processing artificial neural network, and electronic device therefor
CN111353591A (zh) 一种计算装置及相关产品
Véstias Processing systems for deep learning inference on edge devices
CN111930681A (zh) 一种计算装置及相关产品
CN109542513B (zh) 一种卷积神经网络指令数据存储系统及方法
US11169957B2 (en) Systems and methods for reconfigurable systolic arrays
US11307866B2 (en) Data processing apparatus and method
CN111026517B (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