CN110738324B - 深度学习系统和用于深度学习系统的处理数据的方法 - Google Patents

深度学习系统和用于深度学习系统的处理数据的方法 Download PDF

Info

Publication number
CN110738324B
CN110738324B CN201910339231.8A CN201910339231A CN110738324B CN 110738324 B CN110738324 B CN 110738324B CN 201910339231 A CN201910339231 A CN 201910339231A CN 110738324 B CN110738324 B CN 110738324B
Authority
CN
China
Prior art keywords
data
resource
task
format
data representation
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.)
Active
Application number
CN201910339231.8A
Other languages
English (en)
Other versions
CN110738324A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110738324A publication Critical patent/CN110738324A/zh
Application granted granted Critical
Publication of CN110738324B publication Critical patent/CN110738324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

公开了深度学习系统和用于深度学习系统的处理数据的方法。提供一种用于由多个异构资源驱动的深度学习系统的处理数据的方法。所述方法包括:当包括多个操作中的至少一个操作的第一任务将被执行时,接收指示第一任务的第一计算路径的第一路径信息。第一计算路径包括包含在第一任务中的操作的顺序和用于执行包括在第一任务中的操作的资源的驱动顺序。所述方法还包括基于数据表示信息和第一路径信息,设置用于执行包括在第一任务中的操作的资源的数据表示格式。数据表示信息指示所述多个异构资源中的每个异构资源的优化的数据表示格式。

Description

深度学习系统和用于深度学习系统的处理数据的方法
本申请要求于2018年7月19日提交到韩国知识产权局(KIPO)的第10-2018-0083807号韩国专利申请的优先权,所述韩国专利申请的公开通过完整引用包含于此。
技术领域
示例性实施例总体涉及机器学习技术,更具体地讲,涉及用于深度学习的管理数据表示的方法、用于深度学习的处理数据的方法和执行管理数据表示的方法和处理数据的方法的深度学习系统。
背景技术
存在基于机器学习对数据进行分类的各种方法。在它们当中,使用神经网络或人工神经网络(ANN)对数据进行分类的方法是一个示例。ANN通过建造人脑的细胞结构模型来获得,其中,有效识别模式的处理在人脑的细胞结构模型中被执行。ANN指的是基于软件或硬件的计算模型,并且被设计用于通过应用经由连接线互联的许多人工神经元来模拟生物计算能力。人脑由作为神经的基本单元的神经元构成,并且根据这些神经元之间的不同类型的密集连接来对信息进行加密或解密。ANN中的人工神经元通过对生物神经元功能的简化来获得。ANN通过将具有连接强度的人工神经元进行互联来执行认知或学习处理。最近,已经研究了深度学习处理和服务以克服ANN的限制。
目前,在使用神经网络或人工神经网络对数据进行处理时,通常需要多个异构资源。然而,多个异构资源之间往往无法有效地共享数据,或者通信成本高。
发明内容
本发明构思的至少一个示例性实施例提供一种在由多个异构资源驱动的深度学习系统中动态管理数据表示的方法。
本发明构思的至少一个示例性实施例提供一种在由多个异构资源驱动的深度学习系统中有效处理数据的方法。
本发明构思的至少一个示例性实施例提供一种执行管理数据表示的方法和处理数据的方法的深度学习系统。
根据本发明构思的示例性实施例,提供一种用于深度学习系统的处理数据的方法。深度学习系统由多个异构资源驱动。所述方法包括:当包括多个操作中的至少一个操作的第一任务将被执行时,接收指示第一任务的第一计算路径的第一路径信息。第一计算路径包括包含在第一任务中的操作的顺序和用于执行包括在第一任务中的操作的资源的驱动顺序。所述方法还包括:基于数据表示信息和第一路径信息,设置用于执行包括在第一任务中的操作的资源的数据表示格式。数据表示信息指示所述多个异构资源中的每个异构资源的优化的数据表示格式。
所述方法还可包括:基于第一路径信息和用于执行包括在第一任务中的操作的资源的数据表示格式执行第一任务。
根据本发明构思的示例性实施例,提供一种深度学习系统。所述深度学习系统包括:多个异构资源、第一处理器和第二处理器。当第一任务包括将被所述多个异构资源中的至少一个异构资源执行的多个操作中的至少一个操作时,深度学习系统生成指示第一任务的第一计算路径的第一路径信息。第一计算路径包括包含在第一任务中的操作的顺序和用于执行包括在第一任务中的操作的资源的驱动顺序。第二处理器基于数据表示信息和第一路径信息,设置用于执行包括在第一任务中的操作的资源的数据表示格式。数据表示信息指示所述多个异构资源中的每个异构资源的优化的数据表示格式。
根据本发明构思的示例性实施例,提供一种深度学习系统。所述深度学习系统包括:存储器和第一处理器至第三处理器。存储器存储计算机程序,其中,所述计算机程序包括被配置为将数据分类为多个类中的一个类的神经网络。神经网络包括具有多个顺序的操作的任务。第一处理器具有第一类型,并且被初始配置为以第一数据格式输出数据。第二处理器具有其他的第二类型,并且被初始配置为对不同于第一数据格式的第二数据格式的数据进行操作。第三处理器被配置为:确定操作之中的将由第一处理器执行的第一操作,其中,第一操作具有将被提供给操作之中的将由第二处理器执行的第二操作的输出;并且当第一处理器即将执行第一操作时,设置第一处理器输出第二数据格式的数据。
在本发明构思的至少一个实施例中,可基于路径信息和数据表示信息动态和有效地设置每个资源的数据表示格式,其中,路径信息指示包括异构资源的驱动顺序的计算路径,数据表示信息指示每个资源的优化或最合适的数据表示格式。例如,前一个或前面的资源的数据输出格式可基于后一个或后面的资源的最优化或最合适的数据表示格式来设置。此外,当计算路径被动态改变时,每个资源的数据表示格式可实时地或在运行时间期间被改变和更新。因此,在不需要存储器复制操作的情况下,数据可被异构资源有效地共享,通信成本可被降低,并且深度学习系统可具有相对提高或增强的性能和能量效率。
附图说明
通过参照附图描述本发明构思的示例性实施例,本发明构思将变得更加清楚。
图1是示出根据本发明构思的示例性实施例的用于深度学习的管理数据表示的方法的流程图。
图2是示出根据本发明构思的示例性实施例的深度学习系统的框图。
图3A和图3B是用于描述由根据本发明构思的示例性实施例的由深度学习系统驱动的网络结构的示例的示图。
图4A和图4B是用于描述根据本发明构思的示例性实施例的深度学习系统中的数据处理方案和数据表示格式的示例的示图。
图5是示出图1中的设置数据表示格式的示例的流程图。
图6、图7和图8是用于描述图5的设置数据表示格式的操作的示图。
图9是示出根据本发明构思的示例性实施例的用于深度学习的处理数据的方法的流程图。
图10是示出根据本发明构思的示例性实施例的用于深度学习的管理数据表示的方法的流程图。
图11是示出图10中的改变计算路径和路径信息的示例的流程图。
图12是用于描述图11的改变计算路径和路径信息的操作的示图。
图13是示出图10中的改变计算路径和路径信息的另一示例的流程图。
图14是用于描述图13的改变计算路径和路径信息的操作的示图。
图15是示出根据本发明构思的示例性实施例的用于深度学习的处理数据的方法的流程图。
图16是示出根据本发明构思的示例性实施例的深度学习系统的框图。
具体实施方式
将参照示出本发明构思的实施例的附图更充分地描述本发明构思。然而,本发明构思可以以许多不同的形式来实现,并且不应被解释为限于在此阐述的实施例。贯穿本申请,相同的参考标号表示相同的元件。
图1是示出根据本发明构思的示例性实施例的用于深度学习的管理数据表示的方法的流程图。
参照图1,根据示例性实施例的管理数据表示的方法由深度学习系统或服务执行或实行,其中,深度学习系统或服务由多个异构资源(例如,至少两个不同类型的资源)驱动。在下文中,将基于深度学习系统描述根据示例性实施例的管理数据表示的方法。然而,根据示例性实施例的管理数据表示的方法可被应用于各种机器学习系统(诸如,人工神经网络(ANN)系统、深度神经网络(DNN)系统等)中的至少一种。将参照图2描述深度学习系统的详细配置。
在根据示例性实施例的用于深度学习的管理数据表示的方法中,当第一任务将被执行时,接收第一路径信息(步骤S100)。第一路径信息指示第一任务的第一计算路径。
第一任务包括多个操作或算术运算中的至少一个。例如,第一任务可指示应用或服务(例如,图像分类服务、基于生物信息或生物特征数据的用户认证服务、高级驾驶员辅助系统(ADAS)服务、语音辅助服务等)。例如,多个操作可包括各种操作(诸如,卷积操作、修正线性单元操作(rectified linear unit(RELU)operation)等)。
第一计算路径包括包含在第一任务中的操作的顺序和用于执行包括在第一任务中的操作的资源的驱动顺序。包括在第一任务中的操作可以是多个操作中的一些操作,并且用于执行包括在第一任务中的操作的资源可以是多个异构资源中的一些异构资源。
如在此使用的,术语“计算路径”或“路径”指示用于在一段时间内执行单个操作或任务的资源的组合。例如,至少一个资源可用于执行单个操作或任务。可选择地,为了执行单个操作或任务,可在第一时间间隔期间使用第一资源,并且可在第一时间间隔之后的第二间隔期间使用第二资源。术语“计算路径”或“路径”还可包括在用于执行单个操作或任务的每个资源中被使用的信息(诸如,算术算法、实现方式、通信方案等)。
基于数据表示信息和第一路径信息,设置用于执行第一任务的资源(例如,用于执行包括在第一任务中的操作的资源)的数据表示格式(步骤S200)。
数据表示信息指示多个异构资源中的每个异构资源的优化或最合适的数据表示格式。例如,每个资源的数据表示格式可包括与输入到每个资源的数据相关联的数据输入格式和与从每个资源输出的数据相关联的数据输出格式。例如,如将参照图7描述的,数据表示信息可被存储为针对每个资源的表(例如,优先级表(preference level table))。
在一些示例性实施例中,单个资源的数据输入格式和数据输出格式可被设置为彼此不同,因此可实现:可针对每个资源设置两种或更多种数据表示格式。例如,如将参照图5、图6和图7描述的,每个资源的数据输入格式可基于自身的优化或最合适的数据表示格式来设置,并且每个资源的数据输出格式可基于接收从每个资源输出的数据的下一个资源的优化或最合适的数据表示格式来设置。
图2是示出根据本发明构思的示例性实施例的深度学习系统的框图。
参照图2,深度学习系统100包括多个异构资源110、任务管理器120和数据剪裁器(data tailor)130。深度学习系统100还可包括自适应路径管理器(APAM)140、特殊功能寄存器(SFR)150和存储器(MEM)160。
深度学习系统100由多个异构资源110驱动。例如,各种服务(例如,任务TK或应用)(诸如图像分类服务、用户认证服务、高级驾驶员辅助系统(ADAS)服务和/或语音辅助服务)可由多个异构资源110执行和处理。
多个异构资源110可包括中央处理器(CPU)111、图形处理器(GPU)112、神经处理单元(NPU)113、数字信号处理器(DSP)114、图像信号处理器(ISP)115和专用硬件(DHW)116。在一个实施例中,NPU 113是专用于机器学习算法的加速的微处理器。例如,专用硬件116可包括视觉处理单元(VPU)、视觉知识产权(VIP)等。VPU可由被设计用于使机器视觉任务加速的微处理器实现。每个资源可被称为处理元件(PE)。
尽管图2仅示出计算资源作为多个异构资源110的示例,但是多个异构资源110还可包括通信资源(诸如,用于控制对存储器160的访问的直接存储器访问单元(DMA)或用于支持各种内部和/或外部通信的连通(connectivity)单元)。例如,连通单元可由收发器或调制解调器实现。
在一个实施例中,任务管理器120从外部装置或用户接收任务TK,管理或调度接收的任务TK的执行,并将任务TK分配给多个异构资源110中的一个或多个异构资源。在一个实施例中,外部装置包括存储器和处理器。存储器存储计算机程序,其中,计算机程序包括被配置为将数据分类为多个类中的一个类的神经网络。神经网络包括具有多个顺序的操作的任务。在一个实施例中,处理器被配置为:确定操作中的将由资源110中的第一资源执行的第一操作(第一操作具有将被提供给将由资源110中的第二资源执行的多个操作中的第二操作的输出),并且,当第一资源即将执行第一操作时,设置第一资源以第二资源被配置为进行操作的数据格式输出数据。例如,任务管理器120将包括在任务TK中的操作分配给多个异构资源110中的一个或多个异构资源,并生成指示任务TK的计算路径的路径信息CPI。任务TK的计算路径可包括包含在任务TK中的操作的顺序和用于执行包括在任务TK中的操作的资源的驱动顺序。例如,计算路径可指示:任务TK的第一操作将由CPU 111执行,任务TK的第二操作将在第一操作之后由GPU 112执行,任务TK的第三操作将在第二操作之后由NPU113执行等。图1中的步骤S100可由任务管理器120执行。
数据裁剪器130从任务管理器120接收路径信息CPI,并接收指示多个异构资源110中的每个异构资源的优化或最合适的数据表示格式的数据表示信息DRI。例如,数据表示信息DRI可被预存储在存储器160中,并且数据裁剪器130可从存储器160接收数据表示信息DRI。数据裁剪器130基于数据表示信息DRI和路径信息CPI,设置用于执行包括在任务TK中的操作的资源的数据表示格式。换句话说,图1中的步骤S200可由数据裁剪器130执行。
在一个示例性实施例中,数据裁剪器130生成寄存器设置信号SS作为设置数据表示格式的结果。寄存器设置信号SS可被提供给特殊功能寄存器150,并且用于执行包括在任务TK中的操作的资源的数据表示格式可被设置并存储在特殊功能寄存器150中。设置信号SS可指示由数据裁剪器130设置的数据表示格式。多个异构资源110可与特殊功能寄存器150通信,并可使用设置和存储的数据表示格式来执行任务TK。例如,多个资源110中的一个资源可执行任务TK的操作,以生成多个数据表示格式中的一种数据表示格式的数据。在一个示例性实施例中,数据裁剪器130由处理器或微处理器实现。
在一个示例性实施例中,数据裁剪器130提供专用接口FCON作为设置数据表示格式的结果。例如,专用接口FCON可被提供给多个异构资源110,作为包括数据输入格式和数据输出格式的转换函数。例如,转换函数可被定义为“Convert(pIn,pOut,IN_format,OUT_format),”,并且转换函数中的参数“pIn,”、“pOut,”、“IN_format”和“OUT_format”可分别指示输入数据、输出数据、数据输入格式和数据输出格式。多个异构资源110可使用基于专用接口FCON的设置的数据表示格式来执行任务TK。
在本发明构思的一个示例性实施例中,数据裁剪器130提供指令RD和WR作为设置数据表示格式的结果。例如,指令RD和WR可被提供给多个异构资源110,作为指示数据输入格式的数据读取指令RD和指示数据输出格式的数据写入指令WR。例如,数据读取指令RD和数据写入指令WR可被分别定义为“Read(pIn,IN_format)”和“Write(pOut,OUT_format)”。多个异构资源110可使用基于指令RD和WR的设置的数据表示格式来执行任务TK。
在一个实施例中,自适应路径管理器140接收指示与多个异构资源110相关联的资源环境的资源环境信息REI,并接收指示与包括多个异构资源110的至少一个电子装置相关联的操作环境的操作环境信息OEI。在一个实施例中,自适应路径管理器140由处理器或微处理器实现。例如,资源环境可指示多个异构资源110是否可用,操作环境可指示包括多个异构资源110的至少一个电子装置的上下文(例如,当前状态或状况)。例如,多个资源110中的一个资源可将指示该一个资源是否可用的环境信息OEI发送到自适应路径管理器140。尽管没有在图2中示出,但是深度学习系统100还可包括生成资源环境信息REI的资源管理器。
自适应路径管理器140可基于资源环境信息REI和操作环境信息OEI来改变计算路径和路径信息CPI,以生成更新的计算路径和更新的路径信息CPI’。换句话说,计算路径可基于资源和上下文(例如,资源敏感(resource-aware)和上下文敏感(context-aware))被动态和自适应地设置和改变(例如,更新)。
当计算路径和路径信息CPI被改变时,数据剪裁器130接收更新的路径信息CPI’。数据剪裁器130可基于数据表示信息DRI和更新或改变的路径信息CPI’,改变用于执行包括在任务TK中的操作的资源的数据表示格式。将参照图10描述自适应路径管理器140和数据裁剪器130的操作。由于数据表示格式被数据裁剪器130改变,所以数据裁剪器130可被称为数据整形器(data reshaper)。
存储器160可存储由深度学习系统100处理的各种数据。在一些示例性实施例中,存储器160可包括至少一个易失性存储器(诸如,动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、静态随机存取存储器(SRAM)等)和/或至少一个非易失性存储器(诸如,电可擦除可编程只读存储器(EEPROM)、闪存、相变随机存取存储器(PRAM)、电阻式随机存取存储器(RRAM)、磁性随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、纳米浮栅存储器(NFGM)或聚合物随机存取存储器(PoRAM)等)。
在一个示例性实施例中,深度学习系统100中的所有元件被包括在单个电子装置中。
在一个示例性实施例中,图2中的任务管理器120、数据裁剪器130和自适应路径管理器140的至少一部分由硬件实现。例如,包括在根据示例性实施例的深度学习系统100中的元件的至少一部分被包括在基于计算机的电子系统中。在另一示例性实施例中,图2中的任务管理器120、数据裁剪器130和自适应路径管理器140的至少一部分被实现为指令代码或程序例程(例如,软件程序)。例如,指令代码或程序例程可由基于计算机的电子系统执行,并且可被存储在位于基于计算机的电子系统内部或外部的任何存储装置中。
尽管图2仅示出深度学习系统100中的一些元件之间的数据/信号传输流,但是深度学习系统100中的所有元件可经由至少一个总线彼此连接,因此深度学习系统100中的所有元件可经由至少一个总线彼此通信。
尽管没有在图2中示出,但是深度学习系统100还可包括软件元件(例如,框架、核或装置驱动程序、中间件、应用编程接口(API)、应用程序或应用等)。软件元件的至少一部分可被称为操作系统(OS)。
图3A和图3B是用于描述由根据本发明构思的示例性实施例的由深度学习系统驱动的网络结构的示例的示图。
参照图3A,一般的网络结构包括输入层IL、多个隐藏层HL1、HL2、…HLn以及输出层OL。
输入层IL可包括i个输入节点x1、x2、…xi,其中,i是自然数。长度为i的输入数据(例如,向量输入数据)IDAT(例如,包括i个元素的输入数据IDAT)可被输入到输入节点x1、x2、…xi,使得输入数据IDAT的每个元素被输入到输入节点x1、x2、…xi中的各自的节点。
多个隐藏层HL1、HL2、…HLn包括n个隐藏层,并且包括多个隐藏节点h1 1、h1 2、h1 3、...、h1 m、h2 1、h2 2、h2 3、...、h2 m、hn 1、hn 2、hn 3、...、hn m,其中,n是自然数。例如,隐藏层HL1包括m个隐藏节点h1 1、h1 2、h1 3、...、h1 m,隐藏层HL2包括m个隐藏节点h2 1、h2 2、h2 3、...、h2 m,隐藏层HLn包括m个隐藏节点hn 1、hn 2、hn 3、...、hn m,其中,m是自然数。
输出层OL包括j个输出节点y1、y2、…yj,其中,j是自然数。输出节点y1、y2、…yj中的每个节点对应于将被分类的多个类中的各自的类。输出层OL可针对多个类中的每个类输出与输入数据IDAT相关联的输出值(例如,类得分或仅得分)。输出层OL可被称为全连接层。例如,当神经网络被配置为确定输入图像是否对应于汽车时,输出层OL可指示输入数据IDAT对应于汽车的概率。
图3A中示出的神经网络的结构可由关于节点之间的分支(或连接)的信息和分配给每个分支的加权值表示,其中,分支(或连接)被示出为线,加权值没有被示出。一个层内的节点不彼此连接,但是不同层的节点可完全地或部分地彼此连接。
每个节点(例如,节点h1 1)接收前一节点(例如,节点x1)的输出,可对接收的输出执行运算操作、运算或计算,并输出运算操作、运算或计算的结果作为下一节点(例如,节点h2 1)的输入。每个节点可通过将输入应用到特定的函数(例如,非线性函数)来计算将被输出的值。
通常,神经网络的结构被预先设置,并且节点之间的连接的加权值使用具有数据属于哪个类的已知答案的数据来适当地设置。具有已知答案的数据被称为“训练数据”,确定加权值的过程被称为“训练”。神经网络在训练程期间“学习”。独立可训练的结构和加权值的组被称为“模型”,通过具有确定的加权值的模型预测输入数据属于哪个类并随后输出预测值的过程被称为“测试”过程。
因为每个节点(例如,节点h1 1)连接到前一层的所有节点(例如,包括在层IL中的节点x1、x2、...、xi),然后加权值的数量随着输入图像数据的大小的增加而大幅增加,因此图3A中示出的一般的神经网络可能不适合于处理输入的图像数据(或输入的声音数据)。通过将滤波技术与一般的神经网络组合来实现卷积神经网络。二维图像(例如,输入的图像数据)可通过卷积神经网络被有效地训练。
参照图3B,卷积神经网络包括多个层CONV1、RELU1、CONV2、RELU2、POOL1、CONV3、RELU3、CONV4、RELU4、POOL2、CONV5、RELU5、CONV6、RELU6、POOL3和FC。
与一般的神经网络不同,卷积神经网络的每个层具有宽度、高度和深度三个维度,因此被输入到每个层的数据可以是具有宽度、高度和深度三个维度的体数据(volumedata)。例如,如果图3B中的输入图像具有32宽度(例如,32个像素)、32高度和三个色彩通道R、G和B的大小,则对应于输入图像的输入数据IDAT可具有32×32×3的大小。图3B中的输入数据IDAT可被称为输入体数据或输入激活体(activation volume)。
卷积层CONV1、CONV2、CONV3、CONV4、CONV5和CONV6中的每个卷积层可对输入体数据执行卷积操作。在图像处理中,卷积操作表示基于具有加权值的掩模(mask)处理图像数据并通过将输入值乘以加权值并将全部的相乘后的值相加来获得输出值的操作。掩模可被称为滤波器、窗或核。
具体地讲,每个卷积层的参数可由一组可学习的滤波器组成。每个滤波器可在空间上(沿宽度和高度)是小的,但是可延伸到输入体的整个深度。例如,在前向传播(forwardpass)期间,每个滤波器可在输入体的宽度和高度上滑动(更精确地讲,卷积),并且点乘可在任何位置在滤波器的项目和输入的项目之间被计算。当滤波器在输入体的宽度和高度上滑动时,给出该滤波器在每个空间位置处的响应的二维激活图(activation map)可被生成。结果,可通过沿着深度维度堆叠这些激活图来生成输出体。例如,如果具有32×32×3的大小的输入体数据通过具有四个具有零填充(zero-padding)的滤波器的卷积层CONV1,则卷积层CONV1的输出体数据可具有32×32×12的大小(例如,体数据的深度增加)。
RELU层RELU1、RELU2、RELU3、RELU4、RELU5和RELU6中的每个RELU层可执行对应于激活函数的修正线性单元运算,其中,激活函数由例如函数f(x)=max(0,x)(例如,针对所有的负输入x,输出为零)定义。例如,如果具有32×32×12的大小的输入体数据通过RELU层RELU1以执行修正线性单元运算,则RELU层RELU1的输出体数据可具有32×32×12的大小(例如,体数据的大小被保持)。
池化层POOL1、POOL2和POOL3中的每个池化层可沿着宽度和高度的空间维度对输入体数据执行下采样运算。例如,以2×2矩阵格式布置的四个输入值可基于2×2的滤波器被转换为一个输出值。例如,以2×2矩阵格式布置的四个输入值的最大值可基于2×2最大池化而选择,或者以2×2矩阵格式布置的四个输入值的平均值可基于2×2的平均池化而获得。例如,如果具有32×32×12的大小的输入体数据通过具有2×2滤波器的池化层POOL1,则池化层POOL1的输出体数据可具有16×16×12的大小(例如,体数据的宽度和高度减小,体数据的深度被保持)。
通常,一个卷积层(例如,CONV1)和一个RELU层(例如,RELU1)可在卷积神经网络中形成一对CONV/RELU层,多对CONV/RELU层可在卷积神经网络中重复布置,并且池化层可被周期性地插入在卷积神经网络中,从而减小图像的空间大小并提取图像的特性。
输出层或全连接层FC可针对多个类中的每个类输出输入体数据IDAT的结果(例如,类得分)。例如,当卷积操作和下采样操作被重复时,对应于二维图像的输入体数据IDAT可被转换为一维矩阵或向量。例如,全连接层FC可表示输入体数据IDAT对应于汽车、卡车、飞机、船和马的概率。
包括在卷积神经网络中的层的类型和数量不限于参照图3B描述的示例,并且可根据示例性实施例进行改变。此外,尽管没有在图3B中示出,但是卷积神经网络还可包括其他的层(诸如,用于将对应于预测结果的分值转换成概率值的柔性最大层,或者用于添加至少一个偏置的偏置添加层(bias adding layer))。
图4A和图4B是用于描述根据本发明构思的示例性实施例的深度学习系统中的数据处理方案和数据表示格式的示例的示图。图4A和图4B中的每个图中示出的操作可对应于对图3A和/或图3B中的一个层上执行的操作。
参照图4A,包括根据颜色布置的红色子像素数据R1、R2、R3、R4、R5和R6、绿色子像素数据G1、G2、G3、G4、G5和G6、蓝色子像素数据B1、B2、B3、B4、B5和B6的输入数据ID1可被接收。输入数据ID1可按颜色分开,包括数据O1、O2、O3、O4、O5和O6的输出数据OD1可通过将每个子像素数据乘以加权值并通过将加权的子像素数据相加来生成。例如,第一加权值“a”可一次与红色子像素数据R1、R2、R3、R4、R5和R6相乘,第二加权值“b”可一次与绿色子像素数据G1、G2、G3、G4、G5和G6相乘,第三加权值“c”可一次与蓝色子像素数据B1、B2、B3、B4、B5和B6相乘,并且加权的红色子像素数据、加权的绿色子像素数据和加权的蓝色子像素数据可一次相加在一起,以生成数据O1、O2、O3、O4、O5和O6(例如,O1=a×R1+b×G1+c×B1)。图4A中示出的数据处理方案可被称为数量、通道、高度和宽度(NCHW)方案。
参照图4B,包括红色子像素数据R1、R2、R3、R4、R5和R6、绿色子像素数据G1、G2、G3、G4、G5和G6、蓝色子像素数据B1、B2、B3、B4、B5和B6的输入数据ID2以像素为单位布置。输入数据ID2可按包括一个红色子像素、一个绿色子像素和一个蓝色子像素的像素分开。包括数据O1、O2、O3、O4、O5和O6的输出数据OD2可通过将每个子像素数据乘以加权值并通过将加权的子像素数据相加来生成。例如,第一加权值“a”可与红色子像素数据R1相乘,第二加权值“b”可与绿色子像素数据G1相乘,第三加权值“c”可与蓝色子像素数据B1相乘,并且输出数据O1可通过将加权的红色子像素数据、加权的绿色子像素数据和加权的蓝色子像素数据相加来生成(例如,O1=a×R1+b×G1+c×B1)。其他的输出数据O2、O3、O4、O5和O6可以以类似的方式生成。在图4B中示出的数据处理方案可被称为数量、高度、宽度和通道(NHWC)方案。
尽管图4A中的输出数据OD1和图4B中的输出数据OD2具有相同的值,但是因为图4A中的数据处理方案和图4B中的数据处理方案彼此不同,所以图4A中的输入数据ID1的数据表示格式和图4B中的输入数据ID2的数据表示格式可彼此不同。如果图4B中的输入数据ID2被提供给图4A的示例作为输入,或者图4A中的输入数据ID1被提供给图4B的示例作为输入,则可能需要额外的操作和/或处理,性能可能劣化,并且功率损耗可能增加。因此,提供具有优化或最合适的数据表示格式的输入数据是重要的。
深度学习系统中的数据处理方案和数据表示格式不限于图4A和图4B的示例,并且可根据示例性实施例进行改变。例如,资源的输入/输出数据的数据表示格式可包括各种数据特性(例如,各种数据类型(例如,浮点或整数))、针对硬件、操作、算法和库(library)的各种布置(例如,NCHW或NHWC)、各种量子化方案、各种数据压缩方案(例如,Lempel Ziv(LZ)或霍夫曼(Huffman))等中的至少一种。此外,优化或最合适的数据表示格式可针对每个资源而不同。
图5是示出图1中的设置数据表示格式的示例的流程图。图6、图7和图8是用于描述图5的设置数据表示格式的操作的示图。
参照图1、图5、图6、图7和图8,当设置资源的数据表示格式时(步骤S200),基于与当前资源相关联的数据表示信息设置当前资源的数据输入格式(步骤S210),并基于与下一资源相关联的数据表示信息设置当前资源的数据输出格式和下一资源的数据输入格式(步骤S220)。
如图6中示出的,第一任务TK11包括顺序执行的若干个操作OP11、OP12、OP13、OP14、OP15、OP16和OP17,并且可由不同类型的资源CPU、GPU和NPU执行。例如,通过接收数据IDAT1,通过由GPU执行操作OP11和OP12,通过由CPU执行操作OP13,通过由NPU执行操作OP14、OP15和OP16,通过由GPU执行操作OP17,并通过输出数据ODAT1,来执行第一任务TK11。例如,GPU可对输入数据IDAT1执行操作OP11以生成第一结果,GPU可对第一结果执行操作OP12以生成第二结果,CPU可对第二结果执行操作OP13以生成第三结果,NPU可对第三结果执行操作OP14以生成第四结果,NPU可对第四结果执行操作OP15以生成第五结果,NPU可对第五结果执行操作OP16以生成第六结果,GPU可对第六结果执行操作OP17以生成输出数据ODAT1。输入数据IDAT1可对应于图4A中所示的输入数据ID1或图4B中所示的输入数据ID2。输出数据ODAT1可对应于图4A中所示的输出数据OD1或图4B中所示的输出数据OD2。在一段时间内包括在第一任务TK11中的操作OP11、OP12、OP13、OP14、OP15、OP16和OP17的顺序和用于执行操作OP11、OP12、OP13、OP14、OP15、OP16和OP17的资源CPU、GPU和NPU的驱动顺序可被定义为第一计算路径CP11。第一计算路径CP11可被预先确定,也可在图1中的步骤S100被接收。
此外,如在图7中示出的,针对多个异构资源中的每个异构资源,数据表示信息DRI可被提供并存储为优先级表。例如,数据表示信息DRI可包括CPU的数据表示信息DRI1、GPU的数据表示信息DRI2和NPU的数据表示信息DRI3。
在一个示例性实施例中,可针对多个异构资源中的每个异构资源设置两个或更多个数据表示格式。例如,可针对CPU设置四个数据表示格式DRF1、DRF2、DRF3和DRF4,并且数据表示格式DRF1可以是CPU的最优化或最合适的数据表示格式。类似地,可针对GPU设置四个数据表示格式DRF3、DRF2、DRF1和DRF4,并且数据表示格式DRF3可以是GPU的最优化或最合适的数据表示格式。可针对NPU设置四个数据表示格式DRF2、DRF4、DRF3和DRF5,并且数据表示格式DRF2可以是NPU的最优化或最合适的数据表示格式。
在一些示例性实施例中,基于数据表示信息DRI中的表示格式的数量,针对每个操作可存在核和/或库。深度学习系统可基于用于改变资源和设置数据表示格式的数据被提前缓存的先缓存方案(caching-ahead scheme)进行操作,和/或深度学习系统可使用DMA进行操作。
当设置用于执行第一任务TK11的资源CPU、GPU和NPU的数据表示格式时,由于基于第一计算路径CP11,操作OP11和OP12将首先由GPU执行,所以基于GPU的数据表示信息DRI2,GPU的数据输入格式被设置为作为GPU的最优化或最合适的数据表示格式的数据表示格式DRF3。根据数据表示格式DRF3的数据IDAT1被提供给GPU,并且操作OP11和OP12被GPU执行。由于操作OP11和OP12被相同的资源(例如,被GPU)顺序地或连续地执行,所以没有必要将操作OP11和操作OP12之间的数据表示格式设置为不同。
由于基于第一计算路径CP11,在操作OP12之后操作OP13将由CPU执行,所以基于CPU的数据表示信息DRI1,GPU的数据输出格式和CPU的数据输入格式被设置为作为CPU的最优化或最合适的数据表示格式的数据表示格式DRF1。换句话说,在两个邻近的资源中(例如,在两个连续的资源中),前一个或前面的资源(例如,GPU)的数据输出格式和后一个或后面的资源(例如,CPU)的数据输入格式被设置为彼此相同,因此GPU的数据输入格式(例如,数据表示格式DRF3)和数据输出格式(例如,数据表示格式DRF1)彼此不同。根据数据表示格式DRF1从GPU输出的数据被提供给CPU,并且操作OP13被CPU执行。例如,GPU对具有格式DRF3的输入数据IDAT1执行操作OP11以生成具有格式DRF3的第一结果,GPU对第一结果执行操作OP12以生成具有格式DRF1的第二结果,CPU对第二结果执行操作OP13。
在一个示例性实施例中,用于改变GPU的数据输出格式的操作IOP11被自动插入在操作OP12与操作OP13之间,使得GPU的数据输出格式和CPU的数据输入格式彼此匹配。例如,第一任务TK11可被转换为包括操作OP12与操作OP13之间的操作IOP11的修改的任务。
在一个示例性实施例中,GPU的输出操作数被改变,使得GPU的数据输出格式和CPU的数据输入格式彼此匹配。
在示例性实施例中,如参照图2描述的,特殊功能寄存器150可被设置,专用接口FCON可被提供,或者指令RD和WR可被提供,使得GPU的数据输出格式和CPU的数据输入格式彼此匹配。
根据示例性实施例,GPU的数据输出格式和CPU的数据输入格式基于以上描述的两个或更多个方案的组合而彼此匹配。
由于基于第一计算路径CP11,在操作OP13之后,操作OP14、OP15和OP16将被NPU执行,所以基于NPU的数据表示信息DRI3,CPU的数据输出格式和NPU的数据输入格式被设置为作为NPU的最优化或最合适的数据表示格式的数据表示格式DRF2。换句话说,CPU的数据输出格式和NPU的数据输入格式被设置为彼此相同,因此CPU的数据输入格式(例如,数据表示格式DRF1)和数据输出格式(例如,数据表示格式DRF2)彼此不同。根据数据表示格式DRF2从CPU输出的数据被提供给NPU,并且操作OP14、OP15和OP16被NPU执行。由于操作OP14、OP15和OP16被相同的资源(例如,被NPU)顺序地或连续地执行,所以没有必要将操作OP14与操作OP15之间的数据表示格式和操作OP15与操作OP16之间的数据表示格式设置为不同。
根据示例性实施例,用于改变CPU的数据输出格式的操作IOP12可被自动插入在操作OP13与操作OP14之间,CPU的输出操作数可被改变,特殊功能寄存器150可被设置,专用接口FCON可被提供,指令RD和WR可被提供,或者以上描述的两个或更多个方案可被组合,使得CPU的数据输出格式和NPU的数据输入格式彼此匹配。
由于基于第一计算路径CP11,在操作OP16之后,操作OP17将被GPU执行,所以基于GPU的数据表示信息DRI2,NPU的数据输出格式和GPU的数据输入格式被设置为作为GPU的最优化或最合适的数据表示格式的数据表示格式DRF3。换句话说,NPU的数据输出格式和GPU的数据输入格式被设置为彼此相同,因此NPU的数据输入格式(例如,数据表示格式DRF2)和数据输出格式(例如,数据表示格式DRF3)彼此不同。根据数据表示格式DRF3从NPU输出的数据被提供给GPU,操作OP17被GPU执行,并且数据ODAT1最终被输出。
根据示例性实施例,用于改变NPU的数据输出格式的操作IOP13可被自动插入在操作OP16与操作OP17之间,NPU的输出操作数可被改变,特殊功能寄存器150可被设置,专用接口FCON可被提供,指令RD和WR可被提供,或者以上描述的两个或更多个方案可被组合,使得NPU的数据输出格式和GPU的数据输入格式彼此匹配。
在一个示例性实施例中,如图8中示出的,资源CPU、GPU和NPU分别包括逻辑单元111a、112a和113a。在一个示例中,逻辑单元111a、112a和113a是分布式资源调度程序(DRS)逻辑单元。然而,上述示例仅是示例性的,本申请不限于此。逻辑单元111a、112a和113a中的每个逻辑单元可用于设置资源CPU、GPU和NPU中的各自的资源的数据表示格式(例如,用于改变资源CPU、GPU和NPU中的各自的资源的数据输出格式)。图6中示出的示例可基于这样的示例来实现:逻辑单元111a支持CPU和NPU的最优化或最合适的数据表示格式(例如,数据表示格式DRF1和DRF2),逻辑单元112a支持GPU和CPU的最优化或最合适的数据表示格式(例如,数据表示格式DRF3和DRF1),逻辑单元113a支持NPU和GPU的最优化或最合适的数据表示格式(例如,数据表示格式DRF2和DRF3)。
在一些示例性实施例中,当前一个或前面的资源不支持后一个或后面的资源的最优化或最合适的数据表示格式时,前一个或前面的资源的数据输出格式被设置为后一个或后面的资源的第二最优化或第二最合适的数据表示格式。例如,尽管没有在图6中示出,但是当资源从NPU改变到CPU时,NPU可能不支持作为CPU的最优化或最合适的数据表示格式的数据表示格式DRF1,因此NPU的数据输出格式被设置为作为CPU的第二最优化或第二最合适的数据表示格式的数据表示格式DRF2。在这个示例中,NPU的数据输入格式和数据输出格式被设置为彼此相同。
在根据示例性实施例的管理数据表示的方法中,可基于路径信息和数据表示信息动态和有效地设置每个资源的数据表示格式,其中,路径信息指示包括异构资源的驱动顺序的计算路径,数据表示信息指示每个资源的优化或最合适的数据表示格式。例如,前一个或前面的资源的数据输出格式可基于后一个或后面的资源的最优化或最合适的数据表示格式来设置。因此,在不需要存储器复制操作的情况下,数据可被异构资源有效地分享,从而降低通信成本。
图9是示出根据本发明构思的示例性实施例的用于深度学习的处理数据的方法的流程图。
参照图9,根据本发明构思的示例性实施例的处理数据的方法被由多个异构资源驱动的深度学习系统或服务执行或实行。
在根据示例性实施例的用于深度学习的处理数据的方法中,图9中的步骤S1100和步骤S1200可分别与图1中的步骤S100和S200实质相同。
基于第一路径信息和用于执行包括在第一任务中的操作的资源的数据表示格式执行第一任务(步骤S1300)。例如,如参照图6所述,可由资源CPU、GPU和NPU基于资源CPU、GPU和NPU的数据输出格式来执行操作OP11、OP12、OP13、OP14、OP15、OP16和OP17,其中,资源CPU、GPU和NPU的数据输出格式基于后一个或后面的资源的最优化或最合适的数据表示格式来设置,因此第一任务TK11可被有效地执行。例如,图9中的步骤S1300可由图2中的多个异构资源110执行。
在根据至少一个示例性实施例的处理数据的方法中,可基于路径信息和数据表示信息动态和有效地设置每个资源的数据表示格式,并且在不需要存储器复制操作的情况下,数据可被异构资源有效地分享。因此,深度学习系统可具有相对提高的或增强的性能和能量效率。
图10是示出根据本发明构思的示例性实施例的用于深度学习的管理数据表示的方法的流程图。
参照图10,在根据示例性实施例的用于深度学习的管理数据表示的方法中,图10中的步骤S100和步骤S200可分别与图1中的步骤S100和S200基本相同。
基于资源环境和操作环境改变第一计算路径和第一路径信息(步骤S300)。例如,图10中的步骤S300可由图2中的自适应路径管理器140执行。
在一个实施例中,资源环境指示多个异构资源110是否可用。操作环境可指示包括多个异构资源110的至少一个电子装置的上下文(例如,当前状态或状况)。例如,操作环境可包括正常模式、低功率模式、安全模式、隐私模式等。
基于数据表示信息和改变的第一路径信息改变用于执行第一任务的资源(例如,用于执行包括在第一任务中的操作的资源)的数据表示格式(步骤S400)。例如,步骤S400可类似于步骤S200,并且可由图2中的数据裁剪器130执行。
图11是示出图10中的改变计算路径和路径信息的示例的流程图。图12是用于描述图11的改变计算路径和路径信息的操作的示图。
参照图10、图11和图12,在改变第一计算路径和第一路径信息(步骤S300)之前,将第一任务分配给第一资源(步骤S110)。第一任务被分配给第一资源的信息可被包括第一路径信息中,其中,第一路径信息在步骤S100被接收。
当改变第一计算路径和第一路径信息(步骤S300)时,可检查具有比第一资源的优先级更高的优先级的第二资源是否变得可用(步骤S310)。例如,如果第一任务倾向于它的操作由GPU执行,而GPU当前不可用,则第一任务可首先被分配给CPU,然后如果GPU在第一任务完成之前变得可用,则第一任务可被分配给GPU。当第二资源在第一任务完成之前变得可用时(步骤S310:是),可将第一任务分配给第二资源(步骤S320),并可更新第一计算路径和第一路径信息更新(步骤S330)。在一个示例性实施例中,当第二资源仍不可用时(步骤S310:否),第一任务依然被分配给第一资源,并且第一任务由第一资源执行。
如图12中示出的,第一任务TK21包括顺序执行的若干个操作OP21、OP22、OP23、OP24、OP25和OP26,并且第二任务TK22包括顺序执行的若干个操作OP31、OP32和OP33。此外,第一任务TK21被执行的时间间隔和第二任务TK22被执行的时间间隔部分地重叠。
在初始操作时间,第二任务TK22首先开始并被分配给DSP。在初始操作时间之后,第一任务TK21开始并被分配给GPU。例如,第二任务TK22可通过接收数据IDAT3、通过由DSP执行操作OP31、OP32和OP33并通过输出数据ODAT3来执行。例如,DSP对数据IDAT3执行操作OP31以生成第一结果,对第一结果执行操作OP32以生成第二结果,并对第二结果执行操作OP33以生成ODAT3。第一任务TK21的一部分可通过接收数据IDAT2并通过由GPU执行操作OP21和OP22来执行。例如,GPU对数据IDAT2执行操作OP21以生成第三结果,并对第三结果执行操作OP22以生成第四结果。
由于第二任务TK22首先完成,所以在第一任务TK21完成之前DSP变得可用。此外,针对第一任务TK21,DSP的优先级可高于GPU的优先级。例如,当操作环境对应于低功率模式时,或者当第一任务TK21对应于低功率偏好任务(preference task)或要求具有低功率损耗的任务时,DSP可具有比GPU的优先级更高的优先级。因此,第一任务TK21被分配给DSP,并且第一任务TK21的第一计算路径CP21和第一路径信息实时地或在运行时间期间被改变或更新。例如,DSP对由GPU输出的第四结果执行操作OP23以生成第五结果,DSP对第五结果执行操作OP24等。已完成的第二任务TK22的第二计算路径CP22和第二路径信息被保持。
第一任务TK21的第一计算路径CP21被改变。第一任务TK21被不同类型的资源GPU和DSP执行,并且基于改变的第一计算路径,在操作OP22之后,操作OP23、OP24、OP25和OP26被DSP执行。因此,GPU的数据输出格式和DSP的数据输入格式基于DSP的数据表示信息,被设置为DSP的最优化或最合适的数据表示格式。
根据示例性实施例,用于改变GPU的数据输出格式的操作IOP21可被自动插入,GPU的输出操作数可被改变,特殊功能寄存器150可被设置,专用接口FCON可被提供,指令RD和WR可被提供,或者以上描述的两个或更多个方案可被组合,使得GPU的数据输出格式和DSP的数据输入格式彼此匹配。
第一任务TK21的余下或剩余部分可通过由DSP执行操作OP23、OP24、OP25和OP26,并通过输出数据ODAT2来执行。例如,DSP可对操作OP25的输出执行操作OP26以生成ODAT2。
图13是示出图10中的改变计算路径和路径信息的另一示例的流程图。图14是用于描述图13的改变计算路径和路径信息的操作的示图。
参照图10、图13和图14,在改变第一计算路径和第一路径信息(步骤S300)之前,可将第一任务分配给第一资源(步骤S110)。
当改变第一计算路径和第一路径信息(步骤S300)时,可检查第一资源是否变得不可用(步骤S315)。当第一资源变得不可用(步骤S315:是)时,将第一任务分配给第二资源(步骤S320),并更新第一计算路径和第一路径信息(步骤S330)。当第一资源仍然可用(步骤S315:否)时,第一任务依然被分配给第一资源,并被第一资源执行。
如图14中示出的,第一任务TK31包括顺序执行的若干个操作OP41、OP42、OP43、OP44、OP45和OP46,并且第二任务TK32包括顺序执行的若干个操作OP51、OP52、OP53和OP54。此外,第一任务TK31被执行的时间间隔和第二任务TK32被执行的时间间隔部分地重叠。
在初始操作时间,第一任务TK31首先开始并被分配给GPU。例如,第一任务TK31的一部分通过接收数据IDAT4并通过由GPU执行操作OP41、OP42和OP43来执行。
在第一任务TK31完成之前,第二任务TK32开始并被分配给GPU,因此GPU变得对第一任务TK31不可用。例如,第二任务TK32的优先级可高于第一任务TK31的优先级,并且第二任务TK32可对应于要求具有高性能的任务。因此,第一任务TK31可被分配给DSP,并且第一任务TK31的第一计算路径CP31和第一路径信息可实时地或在运行时间期间被改变或更新。第二任务TK32的第二计算路径CP32和第二路径信息被保持。
第一任务TK31的第一计算路径CP31被改变。第一任务TK31被不同类型的资源GPU和DSP执行,并且基于改变的第一计算路径,在操作OP43之后,操作OP44、OP45和OP46被DSP执行。因此,GPU的数据输出格式和DSP的数据输入格式基于DSP的数据表示信息被设置为DSP的最优化或最合适的数据表示格式。
根据示例性实施例,用于改变GPU的数据输出格式的操作IOP41可被自动插入,GPU的输出操作数可被改变,特殊功能寄存器150可被设置,专用接口FCON可被提供,指令RD和WR可被提供,或者以上描述的两个或更多个方案可被组合,使得GPU的数据输出格式和DSP的数据输入格式彼此匹配。
第一任务TK31的余下或剩余部分可通过由DSP执行操作OP44、OP45和OP46,并通过输出数据ODAT4来执行。例如,DSP对操作OP43的输出执行操作OP44以生成第一结果,对第一结果执行操作OP45以生成第二结果,并对第二结果执行操作OP46以生成数据ODAT4。此外,第二任务TK32通过接收数据IDAT5、通过由GPU执行操作OP51、OP52、OP53和OP54并通过输出数据ODAT5来执行。例如,GPU对数据IDAT5执行操作OP51以生成第三结果,对第三结果执行操作OP52以生成第四结果,并对第四结果执行操作OP53以生成第五结果,并对第五结果执行操作OP54以生成数据ODAT5。
动态地改变计算路径的示例不限于参照图11、图12、图13和图14描述的示例,并且可根据示例性实施例进行改变。例如,异构资源的计算路径可基于各种资源环境和各种操作环境进行改变。
在根据示例性实施例的管理数据表示的方法中,可基于路径信息和数据表示信息动态和有效地设置每个资源的数据表示格式,并且当计算路径被动态地改变时,每个资源的数据表示格式可实时地或在运行时间期间被改变和更新。因此,在不需要存储器复制操作的情况下,数据可被异构资源有效地共享,从而降低通信成本。
图15是示出根据本发明构思的示例性实施例的用于深度学习的处理数据的方法的流程图。
参照图15,在根据示例性实施例的用于深度学习的处理数据的方法中,图15中的步骤S1100、S1200和S1300分别与图9中的步骤S1100、S1200和S1300基本相同,并且图15中的步骤S1400和S1500分别与图10中的步骤S300和S400基本相同。
基于改变的第一路径信息和用于执行包括在第一任务中的操作的资源的改变的数据表示格式来执行第一任务(步骤S1600)。例如,如参照图12所述,基于更新的路径信息和资源GPU的数据输出格式,由资源GPU和DSP执行操作OP21、OP22、OP23、OP24、OP25和OP26,其中,资源GPU的数据输出格式基于后一个或后面的资源的最优化或最合适的数据表示格式来设置,因此第一任务TK21可被有效地执行。例如,图15中的步骤S1600可由图2中的多个异构资源110执行。
在根据示例性实施例的处理数据的方法中,可基于路径信息和数据表示信息动态和有效地设置每个资源的数据表示格式,当计算路径被动态地改变时,每个资源的数据表示格式可实时地或在运行时间期间被改变和更新,并且在不需要存储器复制操作的情况下,数据可被异构资源有效地分享。因此,深度学习系统可具有相对提高的或增强的性能和能量效率。
如本领域技术人员将理解的,本发明构思可被实现为系统、方法、计算机程序产品、和/或在实现有计算机可读程序代码的一个或多个计算机可读介质中实现的计算机程序产品。计算机可读程序代码可被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质可以是任何有形的介质,其中,所述任何有形的介质可包含或存储由指令执行系统、设备或装置使用或与指令执行系统、设备或装置连接的程序。例如,计算机可读介质可以是非暂时性计算机可读介质。
图16是示出根据本发明构思的示例性实施例的深度学习系统的框图。
参照图16,深度学习系统包括第一电子装置101和第二电子装置201。深度学习系统可被第一电子装置101和第二电子装置201驱动。
第一电子装置101包括多个异构资源110、任务管理器120、数据裁剪器130、自适应路径管理器140、特殊功能寄存器150和存储器160。第二电子装置201包括多个异构资源210、任务管理器220、数据裁剪器230、自适应路径管理器240、特殊功能寄存器250和存储器260。多个异构资源110包括CPU 111、GPU 112、NPU 113、DSP 114、ISP 115和专用硬件116,多个异构资源210包括CPU 211、GPU 212、NPU 213、DSP 214、ISP 215和专用硬件216。
图16中的多个异构资源110和210、任务管理器120和220、数据裁剪器130和230、自适应路径管理器140和240、特殊功能寄存器150和250以及存储器160和260可分别与图2中的多个异构资源110、任务管理器120、数据裁剪器130、自适应路径管理器140、特殊功能寄存器150和存储器160基本相同。
在一个示例性实施例中,异构资源中的一些异构资源(例如,异构资源111、112、113、114、115和116)包括在第一电子装置101中,其他异构资源(例如,异构资源211、212、213、214、215和216)包括在第二电子装置201中。第一电子装置101可以是直接与用户交互(例如,由用户直接控制)的电子装置。第二电子装置201可与第一电子装置101在物理上分离,并且可与第一电子装置101互相操作。
在一些示例性实施例中,第一电子装置101可以是任何计算装置和/或移动装置(诸如,个人计算机(PC)、膝上型计算机、移动电话、智能电话、平板计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、摄像机、音乐播放器、视频播放器、便携式游戏机、导航装置、可穿戴装置、物联网(IoT)装置、万物互联网(IoE)装置、虚拟现实(VR)装置、增强现实(AR)装置等)。
在一些示例性实施例中,第二电子装置201可以是可与第一电子装置101互相操作的任何计算装置和/或移动装置。例如,第二电子装置201可以是依赖于第一电子装置101的伴随装置(诸如,可穿戴装置(例如,智能手表))。可选择地,第二电子装置201可以是控制IoT装置和/或IoE装置的内部服务器(例如,家庭网关)或外部服务器(例如,云服务器)。
本发明构思可被应用于包括深度学习、ANN和/或机器学习系统的各种装置和系统。例如,本发明构思可被应用于诸如移动电话、智能电话、平板计算机、膝上型计算机、PDA、PMP、数码相机、便携式游戏机、可穿戴系统、IoT系统、VR系统、AR系统等的系统。
前述是对本发明构思的示例性实施例的说明,并且不被解释为对示例性实施例的限制。虽然已经描述了一些示例性实施例,但是本领域的技术人员将容易理解,在实质上不脱离本公开的情况下,在示例性实施例中可以进行很多修改。因此,所有这样的修改意图包括在本公开的范围内。

Claims (20)

1.一种用于由多个异构资源驱动的深度学习系统的处理数据的方法,所述方法包括:
当包括多个操作中的至少一个操作的第一任务将被执行时,接收指示第一任务的第一计算路径的第一路径信息,其中,第一计算路径包括包含在第一任务中的操作的顺序和用于执行包括在第一任务中的操作的资源的驱动顺序;
基于数据表示信息和第一路径信息,设置用于执行包括在第一任务中的操作的资源的数据表示格式,其中,数据表示信息指示所述多个异构资源中的每个异构资源的优化的数据表示格式,其中,每个资源的数据表示格式包括与输入到每个资源的数据相关联的数据输入格式和与从每个资源输出的数据相关联的数据输出格式。
2.根据权利要求1所述的方法,其中,
所述多个异构资源包括第一类型的第一资源和与第一类型不同的第二类型的第二资源,
第一任务包括包含在所述多个操作中并且被顺序地执行的第一操作和第二操作,
包括在第一任务中的第一操作由第一资源执行,
包括在第一任务中的第二操作由第二资源执行。
3.根据权利要求2所述的方法,其中,设置用于执行包括在第一任务中的操作的资源的数据表示格式的步骤包括:
基于与第一资源相关联的第一数据表示信息,设置第一资源的第一数据输入格式;
基于与第二资源相关联的第二数据表示信息,设置第一资源的第一数据输出格式和第二资源的第二数据输入格式。
4.根据权利要求3所述的方法,其中,第一数据输出格式和第二数据输入格式彼此不同,
所述方法还包括:自动地在第一操作与第二操作之间插入用于改变第一数据输出格式的第三操作,使得第一数据输出格式和第二数据输入格式彼此匹配。
5.根据权利要求3所述的方法,其中,
第一数据输出格式和第二数据输入格式彼此不同,
所述方法还包括:改变第一资源的第一输出操作数,使得第一数据输出格式和第二数据输入格式彼此匹配。
6.根据权利要求3所述的方法,其中,第一数据输入格式和第一数据输出格式彼此不同。
7.根据权利要求1所述的方法,还包括:
基于资源环境信息和操作环境信息,改变第一计算路径和第一路径信息,其中,资源环境信息指示所述多个异构资源是否可用,操作环境信息指示包括所述多个异构资源的电子装置的操作状态;
基于数据表示信息和改变的第一路径信息,改变用于执行包括在第一任务中的操作的资源的数据表示格式。
8.根据权利要求7所述的方法,其中,
所述多个异构资源包括第一类型的第一资源和与第一类型不同的第二类型的第二资源,
改变第一计算路径和第一路径信息的步骤包括:
当第一任务被分配给第一资源并被第一资源执行,并且在第一任务完成之前,具有比第一资源的优先级更高的优先级的第二资源变得可用时,将第一任务分配给第二资源。
9.根据权利要求7所述的方法,其中,
所述多个异构资源包括第一类型的第一资源和与第一类型不同的第二类型的第二资源,
改变第一计算路径和第一路径信息的步骤包括:
当第一任务被分配给第一资源并被第一资源执行,并且在第一任务完成之前,第一资源变得不可用时,将第一任务分配给第二资源。
10.根据权利要求1所述的方法,其中,数据表示信息包括能够针对所述多个异构资源中的每个异构资源设置的两个或更多个数据表示格式。
11.根据权利要求1所述的方法,还包括:
基于第一路径信息和用于执行包括在第一任务中的操作的资源的数据表示格式来执行第一任务。
12.一种深度学习系统,包括:
多个异构资源;
第一处理器,被配置为:当第一任务包括将被所述多个异构资源中的至少一个异构资源执行的多个操作中的至少一个操作时,生成指示第一任务的第一计算路径的第一路径信息,其中,第一计算路径包括包含在第一任务中的操作的顺序和用于执行包括在第一任务中的操作的资源的驱动顺序;
第二处理器,被配置为:基于数据表示信息和第一路径信息,设置用于执行包括在第一任务中的操作的资源的数据表示格式,其中,数据表示信息指示所述多个异构资源中的每个异构资源的优化的数据表示格式,其中,每个资源的数据表示格式包括与输入到每个资源的数据相关联的数据输入格式和与从每个资源输出的数据相关联的数据输出格式。
13.根据权利要求12所述的深度学习系统,还包括:
第三处理器,被配置为:基于资源环境信息和操作环境信息,改变第一计算路径和第一路径信息,其中,资源环境信息指示所述多个异构资源是否可用,操作环境信息指示包括所述多个异构资源的电子装置的操作状态。
14.根据权利要求12所述的深度学习系统,其中,第二处理器被配置为:当第一计算路径和第一路径信息被改变时,基于数据表示信息和改变的第一路径信息,改变用于执行包括在第一任务中的操作的资源的数据表示格式。
15.根据权利要求12所述的深度学习系统,还包括:
特殊功能寄存器,其中,用于执行包括在第一任务中的操作的资源的数据表示格式存储在特殊功能寄存器中。
16.根据权利要求12所述的深度学习系统,其中,用于执行包括在第一任务中的操作的资源的数据表示格式被提供为包括数据输入格式和数据输出格式的转换函数。
17.根据权利要求12所述的深度学习系统,其中,用于执行包括在第一任务中的操作的资源的数据表示格式被提供为指示数据输入格式的数据读取指令和指示数据输出格式的数据写入指令。
18.根据权利要求12所述的深度学习系统,其中,所述多个异构资源包括中央处理器、图形处理器、神经处理单元、数字信号处理器、图像信号处理器和专用硬件中的至少两个。
19.根据权利要求12所述的深度学习系统,其中,
所述多个异构资源中的一些异构资源包括在与用户直接交互的第一电子装置中,
所述多个异构资源中的其他异构资源包括在与第一电子装置物理上分离并与第一电子装置能够互相操作的第二电子装置中。
20.一种深度学习系统,包括:
存储器,存储计算机程序,其中,所述计算机程序包括被配置为将数据分类为多个类中的一个类的神经网络,所述神经网络包括包含多个顺序的操作的任务;
第一类型的第一处理器,被初始配置为以第一数据格式输出数据;
与第一类型不同的第二类型的第二处理器,被初始配置为:对不同于第一数据格式的第二数据格式的第二数据进行操作;
第三处理器,被配置为:确定所述多个顺序的操作之中的将由第一处理器执行的第一操作,其中,第一操作具有将被提供给所述多个顺序的操作之中的将由第二处理器执行的第二操作的输出;当第一处理器即将执行第一操作时,设置第一处理器输出第二数据格式的数据。
CN201910339231.8A 2018-07-19 2019-04-25 深度学习系统和用于深度学习系统的处理数据的方法 Active CN110738324B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180083807A KR20200009435A (ko) 2018-07-19 2018-07-19 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템
KR10-2018-0083807 2018-07-19

Publications (2)

Publication Number Publication Date
CN110738324A CN110738324A (zh) 2020-01-31
CN110738324B true CN110738324B (zh) 2024-06-07

Family

ID=69163118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910339231.8A Active CN110738324B (zh) 2018-07-19 2019-04-25 深度学习系统和用于深度学习系统的处理数据的方法

Country Status (3)

Country Link
US (2) US11348004B2 (zh)
KR (1) KR20200009435A (zh)
CN (1) CN110738324B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200009435A (ko) 2018-07-19 2020-01-30 삼성전자주식회사 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템
US11210559B1 (en) * 2018-10-23 2021-12-28 Hrl Laboratories, Llc Artificial neural networks having attention-based selective plasticity and methods of training the same
KR20200066774A (ko) * 2018-12-03 2020-06-11 삼성전자주식회사 반도체 장치
US11288097B2 (en) 2020-06-12 2022-03-29 Disney Enterprises, Inc. Automated hardware resource optimization
KR102257028B1 (ko) * 2020-10-06 2021-05-27 주식회사 딥이티 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
US11948010B2 (en) * 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
EP4298558A1 (en) * 2021-02-25 2024-01-03 Qualcomm Incorporated Split neural network acceleration architecture scheduling and dynamic inference routing
US20220343177A1 (en) * 2021-04-26 2022-10-27 Micron Technology, Inc. Artificial neural network remapping in memory
WO2022235789A1 (en) 2021-05-07 2022-11-10 Hrl Laboratories, Llc Neuromorphic memory circuit and method of neurogenesis for an artificial neural network
CN113706367B (zh) * 2021-08-26 2024-05-17 北京市商汤科技开发有限公司 节点排布方式确定方法及装置、电子设备和存储介质
WO2023163453A1 (ko) * 2022-02-23 2023-08-31 주식회사 에너자이 임베디드 장치에서 실행될 신경망 모델 최적화 방법, 신경망 모델 최적화 장치, 및 신경망 모델 최적화 시스템
US20230308467A1 (en) * 2022-03-24 2023-09-28 At&T Intellectual Property I, L.P. Home Gateway Monitoring for Vulnerable Home Internet of Things Devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082539B1 (en) * 2006-12-11 2011-12-20 Parallels Holdings, Ltd. System and method for managing web-based forms and dynamic content of website
JP6359716B1 (ja) * 2017-03-30 2018-07-18 インテル コーポレイション 分散型コンピューティングにおける低速タスクの診断

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548892B2 (en) * 2004-04-30 2009-06-16 Microsoft Corporation Processing machine learning techniques using a graphics processing unit
US8818066B2 (en) 2004-06-29 2014-08-26 Siemens Medical Solutions Usa, Inc. Grid computing on radiology network
WO2008118789A2 (en) 2007-03-23 2008-10-02 D. E. Shaw Research, Llc Computation of multiple body interactions
US9049245B2 (en) 2012-10-26 2015-06-02 Mckesson Financial Holdings Method and apparatus for flexibly converting and routing data between disparate systems
US20150302433A1 (en) * 2014-04-17 2015-10-22 Sas Institute Inc. Automatic Generation of Custom Intervals
US9794136B1 (en) * 2015-01-21 2017-10-17 Pivotal Software, Inc. Distributed resource allocation
US20170017576A1 (en) 2015-07-16 2017-01-19 Qualcomm Incorporated Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications
US10817802B2 (en) 2016-05-07 2020-10-27 Intel Corporation Apparatus for hardware accelerated machine learning
KR101818936B1 (ko) 2016-05-19 2018-01-17 건국대학교 산학협력단 딥러닝 수행 시스템 및 방법
US10936941B2 (en) 2016-08-12 2021-03-02 Xilinx, Inc. Efficient data access control device for neural network hardware acceleration system
IL281321B (en) * 2016-10-04 2022-07-01 Magic Leap Inc Efficient data layouts for convolutional neural networks
KR20180051987A (ko) * 2016-11-09 2018-05-17 삼성전자주식회사 인공 신경망의 연산 처리 경로 관리 방법
US10324644B2 (en) * 2017-03-31 2019-06-18 Hewlett Packard Enterprise Development Lp Memory side accelerator thread assignments
CN107203424A (zh) * 2017-04-17 2017-09-26 北京奇虎科技有限公司 一种在分布式集群中调度深度学习作业的方法和装置
KR20200009435A (ko) 2018-07-19 2020-01-30 삼성전자주식회사 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082539B1 (en) * 2006-12-11 2011-12-20 Parallels Holdings, Ltd. System and method for managing web-based forms and dynamic content of website
JP6359716B1 (ja) * 2017-03-30 2018-07-18 インテル コーポレイション 分散型コンピューティングにおける低速タスクの診断

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于深度学习的医学图像识别研究进展;刘飞 等;中国生物医学工程学报(第01期);全文 *

Also Published As

Publication number Publication date
US11928595B2 (en) 2024-03-12
US20220292354A1 (en) 2022-09-15
US11348004B2 (en) 2022-05-31
CN110738324A (zh) 2020-01-31
US20200026997A1 (en) 2020-01-23
KR20200009435A (ko) 2020-01-30

Similar Documents

Publication Publication Date Title
CN110738324B (zh) 深度学习系统和用于深度学习系统的处理数据的方法
US11476869B2 (en) Dynamically partitioning workload in a deep neural network module to reduce power consumption
CN108073981B (zh) 处理卷积神经网络的方法和设备
US11586903B2 (en) Method and system of controlling computing operations based on early-stop in deep neural network
TW202026858A (zh) 在深度神經網路中利用啟動稀疏性
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
CN113469354B (zh) 受存储器限制的神经网络训练
CN112966729B (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN118043821A (zh) 混合稀疏压缩
US11507349B2 (en) Neural processing element with single instruction multiple data (SIMD) compute lanes
CN115861862A (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