CN116483482A - 深度学习任务处理方法、系统、装置、设备及介质 - Google Patents
深度学习任务处理方法、系统、装置、设备及介质 Download PDFInfo
- Publication number
- CN116483482A CN116483482A CN202310573958.9A CN202310573958A CN116483482A CN 116483482 A CN116483482 A CN 116483482A CN 202310573958 A CN202310573958 A CN 202310573958A CN 116483482 A CN116483482 A CN 116483482A
- Authority
- CN
- China
- Prior art keywords
- operator
- task
- operators
- deep learning
- execution mode
- 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
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 185
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 232
- 230000003068 static effect Effects 0.000 claims abstract description 152
- 238000010586 diagram Methods 0.000 claims description 103
- 238000000034 method Methods 0.000 claims description 75
- 230000002441 reversible effect Effects 0.000 claims description 63
- 230000008569 process Effects 0.000 claims description 33
- 238000013528 artificial neural network Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 37
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 11
- 238000013136 deep learning model Methods 0.000 description 9
- 230000004069 differentiation Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本公开公开了一种深度学习任务处理方法、系统、装置、设备及介质,涉及人工智能技术领域,尤其涉及深度学习技术领域。具体实现方案为:响应于任务处理请求,基于任务处理请求携带的模式标识,确定任务处理请求携带的深度学习任务的任务执行模式,其中,深度学习任务包括多个运算操作,任务执行模式包括动态图执行模式和静态图执行模式;以及基于任务执行模式,处理深度学习任务。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及深度学习技术领域。具体涉及一种深度学习任务处理方法、系统、装置、设备及介质。
背景技术
随着深度学习技术在人工智能场景下的应用广泛,深度学习框架也被越来越多的开发者所使用,深度学习框架是深度学习模型的运行平台,深度学习框架涵盖用于分类、回归、聚类、异常检测和数据准备的各种深度学习方法。
发明内容
本公开提供了一种深度学习任务处理方法、系统、装置、电子设备以及存储介质。
根据本公开的一方面,提供了一种深度学习任务处理方法,包括:响应于任务处理请求,基于所述任务处理请求携带的模式标识,确定所述任务处理请求携带的深度学习任务的任务执行模式,其中,所述深度学习任务包括多个运算操作,所述任务执行模式包括动态图执行模式和静态图执行模式;以及基于所述任务执行模式,处理所述深度学习任务。
根据本公开的另一方面,提供了一种深度学习任务处理系统,包括:输入接口,被配置为响应于任务处理请求,基于所述任务处理请求携带的模式标识,确定所述任务处理请求携带的深度学习任务的任务执行模式,其中,所述深度学习任务包括多个运算操作,所述任务执行模式包括动态图执行模式和静态图执行模式;以及任务处理装置,被配置为基于所述任务执行模式,处理所述深度学习任务。
根据本公开的另一方面,提供了一种深度学习任务处理装置,包括:第一确定模块,用于响应于任务处理请求,基于所述任务处理请求携带的模式标识,确定所述任务处理请求携带的深度学习任务的任务执行模式,其中,所述深度学习任务包括多个运算操作,所述任务执行模式包括动态图执行模式和静态图执行模式;以及处理模块,用于基于所述任务执行模式,处理所述深度学习任务。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1A示意性示出了相关技术中手写高阶微分算子方案的示意图。
图1B示意性示出了相关技术中静态图组合算子方案的示意图。
图1C示意性示出了相关技术中动态图组合算子方案的示意图。
图2示意性示出了根据本公开实施例的可以应用深度学习任务处理方法及装置的示例性系统架构。
图3示意性示出了根据本公开实施例的深度学习任务处理方法的流程图。
图4示意性示出了根据本公开另一实施例的深度学习任务处理方法的示意图。
图5示意性示出了根据本公开实施例的深度学习任务处理方法的执行流程示意图。
图6示意性示出了根据本公开实施例的规则注册体系的示意图。
图7示意性示出了根据本公开实施例的深度学习任务处理系统的示意图。
图8示意性示出了根据本公开另一实施例的深度学习任务处理系统的示意图。
图9示意性示出了根据本公开实施例的深度学习任务处理装置的框图。
图10示出了可以用来实施本公开实施例的深度学习任务处理方法的电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
深度学习框架的一个核心工作是在用户完成自定义的计算逻辑的同时,可以提供自动的微分功能,以便用户可以解出自定义的计算逻辑的微分结果。随着深度学习技术的发展,深度学习框架需要解决的任务越来越复杂,对深度学习框架的设计和实现提出了挑战。
例如,在与科学计算相关的深度学习任务中,由于大量的损失函数是基于PINN(Physics-informed Neural Network,基于物理信息的神经网络)方法构建的,而该方法中使用了大量基础科学中的高阶微分公式。因此,深度学习框架如何合理地支持自动高阶微分功能对于科学计算相关的深度学习任务是至关重要的。
再例如,深度学习框架通常配置有多个算子,而每个算子均需要与硬件设施进行适配,以充分发挥硬件设施的性能。而随着深度学习任务的应用领域的扩展,深度学习框架内配置的算子的数量和硬件设施的种类均呈不断上升的趋势,由此也带来的较多的深度学习框架与硬件设施的适配工作的工作量。
目前深度学习框架存在动态图和静态图两种不同的执行模式。在动态图执行模式下,每次执行的时候运算图可以动态变化,具有较高的灵活性,且易于开发调试。在静态图执行模式下,每次执行的时候运算图可以保持不变,易于进行模型的推理部署和全局性能优化。而深度学习框架设计的一个重要的难点问题在于如何平衡动、静态图两种模式。
在相关技术中,深度学习框架的实现一般包括手写高阶微分算子方案、静态图组合算子方案和动态图组合算子方案。
图1A示意性示出了相关技术中手写高阶微分算子方案的示意图。
如图1A所示,深度学习框架内可以添加有大量的手写算子,例如前端算子tanh、一阶反向算子tanh_grad、二阶反向算子tanh_grad_grad、三阶反向算子tanh_grad_grad_grad等。在执行n阶用户自定义的运算的过程中,可以不断调用对应的n+1阶算子实现并加入运算图中,从而保证在运算过程中可以完成n+1阶的微分运算。
例如,在需要完成tanh的三阶微分运算的深度学习任务中,可以通过深度学习框架的开发接口,调用前向运算模块,以实现对前向算子tanh的调用,从而完成前向运算图的构建。前向运算模块可以自动创建反向运算模块,通过调用反向运算模块,可以依次调用一阶反向算子tanh_grad、二阶反向算子tanh_grad_grad、三阶反向算子tanh_grad_grad_grad,从而完成反向运算图的构建。
手写高阶微分算子的方案对自动微分逻辑的修改比较简单,可以很好的支持动态图和静态图两种模式。但高阶微分算子本身的实现较为复杂,且当框架中存在n个运算原子时,若期望支持k阶微分则理论上需要实现n×k个算子,其工作量较大。且在高阶微分过程中,会由于求解高阶全微分/偏微分扩充较多的0×0、0+0的运算,该类运算难以被深度学习框架感知,无法高效剪除多余的分支而导致性能优化困难。
图1B示意性示出了相关技术中静态图组合算子方案的示意图。
如图1B所示,深度学习框架内的可以配置有基础算子,框架的其他算子均可以使用基础算子组合的方式实现。例如softmax运算操作可以拆分为exp、max、div、sum等多个基础运算操作,相应地,与softmax运算操作对应的算子可以使用表示exp、max、div、sum等基础运算的算子进行组合来得到。即当用户完整地完成了运算图的构建时,深度学习框架可以通过建立基础算子体系,将运算图包括的微分运算映射为有限集合下的基础运算。
在静态图组合算子方案中,用户可以通过调用静态开发接口,将需要处理的深度学习任务输入至深度学习框架中,以构建运算图。通过调用前向运算模块,将运算图包括的前向算子拆分为基础算子的组合。相应的,可以调用反向运算模块,将运算图包括的反向算子拆分为基础算子的组合。可以使用神经网络编译器对拆分后的运算图中的算子进行组合,以优化运算图的运行性能。
通过静态图组合算子方案,可以有效较少深度学习框架中需要维护的算子的数量,通过基础算子的组合即可以实现高阶自动微分功能。但该方案的性能强依赖神经网络编译器,如果没有神经网络编译器进化优化,则过多的算子会产生较多的临时变量,从而对硬件性能造成影响。
图1C示意性示出了相关技术中动态图组合算子方案的示意图。
如图1C所示,动态图组合算子方案的实现与静态图组合算子方案的实现类似,均是将前向算子或反向算子拆分为基础算子的组合,其区别在于,深度学习任务的多个运算操作在动态图组合算子方案下是动态执行的,即在完成对前一个运算操作的处理后,才会进行下一个运算操作的处理,从而无法提前获取运算图,难以使用神经网络编译器进行加速。
通过动态图组合算子方案,可以具有较高的组网灵活性,易于调试,但难以进行推理部署和使用神经网络编译器优化加速,导致动态图执行逻辑下大量通过融合获取性能优化的模型性能大幅下滑。
有鉴于此,本公开的实施例提供了一种深度学习任务处理方法、系统、装置、电子设备及存储介质,以至少部分地克服相关技术中存在的问题。该深度学习任务处理方法包括:响应于任务处理请求,基于任务处理请求携带的模式标识,确定任务处理请求携带的深度学习任务的任务执行模式,其中,深度学习任务包括多个运算操作,任务执行模式包括动态图执行模式和静态图执行模式;以及基于任务执行模式,处理深度学习任务。
图2示意性示出了根据本公开实施例的可以应用深度学习任务处理方法及装置的示例性系统架构。
需要注意的是,图2所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。例如,在另一实施例中,可以应用深度学习任务处理方法及装置的示例性系统架构可以包括终端设备,但终端设备可以无需与服务器进行交互,即可实现本公开实施例提供的深度学习任务处理方法及装置。
如图2所示,根据该实施例的系统架构200可以包括终端设备201、202、203,网络204和服务器205。网络204用以在终端设备201、202、203和服务器205之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线和/或无线通信链路等等。
终端设备201、202、203可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器205可以是提供各种服务的服务器,也可以是云服务器等,在此不作限定。
需要说明的是,本公开实施例所提供的深度学习任务处理方法一般可以由服务器205执行。相应地,本公开实施例所提供的深度学习任务处理装置也可以设置于服务器205中。
例如,用户可以通过终端设备201、202、203中的任意一个(例如,终端设备201)来输入深度学习模型,终端设备201可以将深度学习模型处理成深度学习任务,并发送通过网络204发送给服务器205。服务器205可以调用处理器资源,使用本公开实施例提供的深度学习任务处理方法,确定任务执行模式,并基于确定的任务执行模式来对深度学习任务进行处理。服务器205可以将任务处理结果返回给终端设备201,以便终端设备201将任务处理结果向用户进行展示。
应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
图3示意性示出了根据本公开实施例的深度学习任务处理方法的流程图。
如图3所示,该方法300包括操作S310~S320。
在操作S310,响应于任务处理请求,基于任务处理请求携带的模式标识,确定任务处理请求携带的深度学习任务的任务执行模式。
在操作S320,基于任务执行模式,处理深度学习任务。
根据本公开的实施例,任务处理请求可以是由前端设备基于任意的通信协议发送的请求报文。任意的通信协议例如可以是HTTP协议(HyperText Transfer Protocol,超文本传输协议)、FTP协议(File Transfer Protocol,文本传输协议)等。任务处理请求可以包括请求行、请求头、请求体等部分。请求行可以包括请求方法、采用的通信协议及版本等信息。请求头可以包括前端设备的信息,例如包括与模式标识相关的字段、与任务执行模式相关的字段等。请求体可以包括前端设备发送的数据,例如包括深度学习任务等。
根据本公开的实施例,深度学习任务可以表示为使用深度学习框架完成用户意图的任务。用户意图可以表示为用户通过前端设备输入的待处理的深度学习模型。深度学习模型可以包括基于任意的模型架构来实现的模型。任意的模型架构例如可以包括ResNet(Residual Network,残差网络)、DCNN(Dynamic Convolution Neural Network,深度卷积神经网络)等。深度学习模型可以包括用于实现各种功能的模型。各种功能例如可以包括分类、回归、聚类、异常检测等。具体地,深度学习模型可以是针对各类对象进行功能实现的模型,如音频生成模型、图像识别模型等,相应的,处理深度学习任务得到的结果可以是音频数据、图像识别结果等。深度学习任务可以包括多个运算操作,每个运算操作可以表示为与深度学习任务对应的深度学习模型的一个网络层所实现的操作。例如,与深度学习任务对应的深度学习模型可以是ResNet,则ResNet的多个网络层可以和多个运算操作分别对应。
根据本公开的实施例,模式标识可以表示为任务处理请求的请求头中的一个字段,或者,也可以表示为任务处理请求的请求体中的深度学习任务中的一个字段。深度学习任务的任务执行模式可以包括动态图执行模式和静态图执行模式。表示模式标识的字段的值可以用于指示预设或用户设置的任务执行模式。例如,可以配置为在表示模式标识的字段的值为0的情况下,确定深度学习任务的任务执行模式为动态图执行模式,在表示模式标识的字段的值为1的情况下,确定深度学习任务的任务执行模式为静态图执行模式。
根据本公开的实施例,通过根据模式标识来确定深度学习任务的任务执行模式的方式,可以实现深度学习框架在静态图执行模式和动态图执行模式之间的灵活转换,满足动、静态图不同场景的需求,可以兼具动态图的灵活、容易调试的特性,和静态图易于部署、优化的特性。
下面参考图4~图6,结合具体实施例对图3所示的方法做进一步说明。
根据本公开的实施例,深度学习任务包括的多个运算操作可以包括高阶微分运算操作。高阶微分运算操作可以表示二阶或二阶以上的微分运算操作,如二阶微分运算操作、三阶微分运算操作等。
根据本公开的实施例,在不同的任务执行模式下,深度学习任务的处理步骤可以存在区别。
根据本公开的实施例,在任务执行模式为动态图执行模式的情况下,依次对于每个运算操作,可以将该运算操作拆分为基础算子的组合。运算操作可以包括前向运算操作和反向运算操作,相应的,拆分得到的基础算子的组合可以包括与前向运算操作对应的前向组合算子和与反向运算操作对应的反向组合算子。
根据本公开的实施例,在相关技术中,在高阶自动微分场景下,会拆分算子的前向,然后在前向算子的基础上添加反向算子。鉴于相关技术中将运算操作拆分为多个基础算子的组合可能造成任务执行性能的降低和硬件资源的浪费,作为一种可选实施方式,在动态图执行模式下,可以根据需要来选择是否对前向运算操作或反向运算操作进行拆分,以避免性能回退。
根据本公开的实施例,具体地,对于前向运算操作,由于算子库中一般存在与前向运算操作对应的前向算子,因此可以根据对应的前向算子的实现方式来确定是否对该前向运算操作进行拆分。例如,与该前向运算操作对应的前向算子A在运行时需要使用参数a和参数b,而在将该前向算子A拆分为基础算子Al和基础算子A2后,由于基础算子Al在运行时需要使用参数a和参数c,基础算子A2在运行时需要使用参数b和参数d。因此,基础算子Al和基础算子A2的组合在运行时需要使用参数a、参数b、参数c和参数d,相较于前向算子A的实现,基础算子A1和基础算子A2的组合的实现需要消耗更多的寄存器资源,因此,可以确定无需对该前向算子A进行拆分。对于反向运算操作,可以先查看算子库中是否存在对应的框架算子,若存在,则将该框架算子作为与该反向运算操作对应的反向算子,若不存在,则可以将该反向运算操作拆分为基础算子的组合。
根据本公开的实施例,更具体地,在任务执行模式为动态图执行模式的情况下,基于任务执行模式,处理深度学习任务可以包括如下操作:
依次对于每个运算操作,基于算子库包括的多个框架算子,确定与运算操作对应的第一组合算子。基于与运算操作对应的第一组合算子,得到与运算操作对应的第一执行代码。利用执行器运行与运算操作对应的第一执行代码,以处理深度学习任务。
根据本公开的实施例,算子库可以是配置于深度学习框架的存储单元,该存储单元可以用于存储框架算子。框架算子可以利用各种程序语言编译得到,在此不做限定。基础算子可以包含在多个框架算子中。
根据本公开的实施例,与运算操作对应的第一执行代码可以指机器码,如二进制编码。电子设备可以通过执行器来运行机器码,实现对电子设备包括的CPU(CentralProcessing Unit,中央处理器)、GPU(graphics processing unit,图形处理器)、内存等硬件设施的电平状态的控制,从而控制上述硬件设施完成运算操作。第一执行代码可以通过对第一组合算子的代码进行编译而得到。执行器可以是CPU、GPU等处理器中配置的机器码执行装置,可以与开关组等设备组合,将机器码翻译为电平信号的变化。或者,执行器也可以是CPU、GPU等处理器中配置的开关设备,在此不作限定。
根据本公开的实施例,基于是否对运算操作进行拆分,与运算操作对应的第一组合算子可以是多个基础算子组合形成的算子,或者,也可以是算子库中已有的框架算子或基础算子。
根据本公开的实施例,可以通过将算子库包括的多个框架算子与运算操作进行匹配的方式,来确定是否对运算操作进行拆分。具体地,基于算子库包括的多个框架算子,确定与运算操作对应的第一组合算子可以包括如下操作:
在确定多个框架算子中存在与运算操作匹配的第一目标框架算子的情况下,确定第一目标框架算子为第一组合算子。
根据本公开的实施例,算子库中的多个框架算子各自的算子名称可以根据标准术语库来配置。标准术语库可以基于各类自然科学的先验知识整理得到。相应的,深度学习任务包括的多个运算操作的名称也可以根据该标准术语库来配置。例如,对于求和运算,对应的标准术语可以是sum,即与求和运算对应的框架算子的名称可以是sum,深度学习任务中包括的求和运算的名称也可以是sum。
根据本公开的实施例,将多个框架算子与运算操作进行匹配,可以是将多个框架算子的算子名称分别与该运算操作的名称进行匹配。第一目标框架算子与运算操作匹配,可以表示为第一目标框架算子的算子名称与该运算操作的名称一致。相应地,多个框架算子均与该运算操作不匹配,可以表示为该运算操作的名称与多个框架算子的算子名称均不同。
根据本公开的实施例,基于算子库包括的多个框架算子,确定与运算操作对应的第一组合算子还可以包括如下操作:
在确定多个框架算子均与运算操作不匹配的情况下,将运算操作拆分为多个第一基础算子。基于多个第一基础算子,得到第一组合算子。
根据本公开的实施例,通过对于前向运算操作,根据算子库中对应的前向算子的实现方式决定是否拆分,对于反向运算操作,根据算子库中是否存在对应的反向算子的方式来决定是否拆分的方式,可以实现拆分和不拆分两种不同的模式之间的统一,既可以满足高阶自动微分的需求,又可以尽可能地保留低阶自动微分的能力,从而可以避免算子拆分导致的性能回退,进一步地提高动态图执行模式下深度学习任务处理的灵活性。
根据本公开的实施例,在任务执行模式为静态图执行模式的情况下,由于可以预先确定深度学习任务的运算图,因此,可以将所有的运算操作均拆分为多个基础算子的组合,再使用深度学习编译器来进行算子的组合的遍历,以实现对拆分为基础算子的多个运算操作的组合优化。
根据本公开的实施例,在任务执行模式为静态图执行模式的情况下,基于任务执行模式,处理深度学习任务可以包括如下操作:
基于多个运算操作,生成静态运算图。利用深度学习编译器处理静态运算图,得到第二执行代码。利用执行器运行第二执行代码,以处理深度学习任务。
根据本公开的实施例,静态运算图可以是将所有的运算操作,包括前向运算操作和反向运算操作,无论其为一阶微分运算操作,或为高阶微分运算操作,均拆分为多个基础算子的组合来得到。具体地,基于多个运算操作,生成静态运算图可以包括如下操作:
分别对于每个运算操作,将运算操作拆分为多个第二基础算子。基于与多个运算操作各自对应的多个第二基础算子,生成静态运算图。
根据本公开的实施例,可以将与多个运算操作各自对应的多个第二基础算子进行拼接来得到静态运算图。
根据本公开的实施例,利用深度学习编译器处理静态运算图,可以是将组成静态运算图的多个基础算子进行随机组合的遍历,以确定最佳的组合方式。确定最佳的组合方式可以根据利用执行器运行各个组合方式下的静态运算图所消耗的硬件设施资源来确定,即对于硬件设施资源消耗最小的基础算子组合方式即为深度学习编译器的优化结果。相应的,第二执行代码可以是与硬件设施资源消耗最小的基础算子组合方式的源代码对应的机器码。
根据本公开的实施例,通过在前向运算时便将所有算子拆分为基础算子,然后再基础算子上进行反向变换的方式,可以利用相对简单的逻辑实现静态图执行模式下对深度学习任务的处理。因其逻辑相对简单,从而可以提高任务处理的稳定性。但全量拆分后的执行操作强依赖神经网络编译器,在很多硬件场景下开发神经网络编译器具有较高的学习成本,且会消耗较多的人力资源,同时,算子拆分国小,会对神经网络编译器的优化工作带来很大的挑战。因此,可以采用有选择地拆分的方式,对深度学习任务的部分运算操作进行拆分,从而提高静态图执行模式下的灵活性,并兼顾硬件设施的兼容性。
根据本公开的实施例,利用基于多个运算操作,生成静态运算图可以包括如下操作:
获取多个运算操作各自的拆分标识。对于多个运算操作中拆分标识表示为需要拆分的第一运算操作,将第一运算操作拆分为多个第三基础算子。对于多个运算操作中拆分标识表示为无需拆分的第二运算操作,从算子库中确定与第二运算操作对应的第二目标框架算子。基于与至少一个第一运算操作各自对应的多个第三基础算子和与至少一个第二运算操作各自对应的第二目标框架算子,生成静态运算图。
根据本公开的实施例,拆分标识可以表示为运算操作的一个字段,基于该字段的值可以确定是否对该预算操作进行拆分。或者,数据库中可以建立有与深度学习任务相关的数据表,再或者,任务处理请求的请求头中可以维持有一张数据表,该数据表的每个数据项可以包括一个运算操作和该运算操作的拆分标识。基于该数据项中的拆分标识的值,可以确定是否需要对该数据项中的运算操作进行拆分。
根据本公开的实施例,拆分标识的值可以由用户预先设置。作为一种可选实施方式,也可以基于控制列表,确定多个运算操作各自的拆分标识。
根据本公开的实施例,控制列表例如可以是包含黑白名单的列表。在运算操作属于黑名单的情况下,可以确定需要对该运算操作进行拆分,即将该运算操作的拆分标识的值更改为表示需要拆分的值。在运算操作属于白名单的情况下,可以默认不需要对该运算操作进行拆分,即将该运算操作的拆分标识的值更改为表示无需拆分的值。在运算操作均不属于黑名单和白名单的情况下,例如可以基于深度学习框架的实际情况,例如是否包含与该运算操作对应的框架算子的情况,来确定是否需要进行拆分,在此不作限定。
根据本公开的实施例,可以将与至少一个第一运算操作各自对应的多个第三基础算子的组合和与至少一个第二运算操作各自对应的第二目标框架算子,按照原本第一运算操作和第二运算操作的排列顺序进行组合,以得到静态运行图。
根据本公开的实施例,对于基于有选择拆分的策略所生成的静态运行图,可以使用神经网络编译器对该静态运行图包括的基础算子进行组合优化。具体地,利用深度学习编译器处理静态运算图,得到第二执行代码可以包括如下操作:
利用深度学习编译器处理至少一个第一运算操作各自对应的多个第三基础算子,得到至少一个第一执行子代码。基于与至少一个第二运算操作各自对应的第二目标框架算子,得到至少一个第二执行子代码。基于至少一个第一执行子代码和至少一个第二执行子代码,得到第二执行代码。
根据本公开的实施例,可以仅对基础算子进行组合优化,而不对基础算子和框架算子之间进行组合优化。
根据本公开的实施例,作为一种可选实施方式,还可以使用深度学习编译器对基于有选择拆分的策略所生成的静态运行图的整体进行组合优化,以得到第二执行代码。
根据本公开的实施例,在静态图执行模式下,可以默认为需要使用编译器来处理静态运算图。作为一种可选实施方式,任务处理请求可以包括编译器使用标识,还可以基于编译器使用标识来确定是否需要使用编译器。编译器使用标识可以是任务处理请求的请求头中的一个字段,或者,也可以是深度学习任务包括的一个字段,在此不作限定。
根据本公开的实施例,在任务执行模式为静态图执行模式,且编译器使用标识表示为不使用编译器的情况下,基于任务执行模式,处理深度学习任务可以包括如下操作:
在任务执行模式为静态图执行模式,且编译器使用标识表示为不使用编译器的情况下,基于算子库包括的多个框架算子,确定与多个运算操作各自对应的第二组合算子。基于与多个运算操作各自对应的第二组合算子,得到第三执行代码。利用执行器运行第三执行代码,以处理深度学习任务。
根据本公开的实施例,在不使用编译器的情况下,可以尽可能地使用已有的框架算子来完成深度学习任务的处理。具体地,基于算子库包括的多个框架算子,确定与多个运算操作各自对应的第二组合算子可以包括如下操作:
对于每个运算操作,在确定多个框架算子中存在与运算操作匹配的第三目标框架算子的情况下,确定第三目标框架算子为第二组合算子。
根据本公开的实施例,对于不存在匹配的框架算子的运算操作,可以将该运算操作拆分为多个基础算子的组合。具体地,基于算子库包括的多个框架算子,确定与多个运算操作各自对应的第二组合算子可以包括如下操作:
对于每个运算操作,在确定多个框架算子均与运算操作不匹配的情况下,将运算操作拆分为多个第四基础算子。基于多个第四基础算子,得到第二组合算子。
根据本公开的实施例,当使用静态图执行模式,且不使用编译器来处理深度学习任务时,可以采用与动态图执行模式下相同或相似的方法,在此不再赘述。
根据本公开的实施例,通过在静态图执行模式下不使用编译器,可以实现静态图执行模式与神经网络编译器之间的解耦,减少各个硬件设施上神经网络编译器的开发成本,可以便于深度学习框架与各个硬件设施的接入,降低深度学习框架与硬件设施之间的适配成本。
根据本公开的实施例,可以根据模式标识,来确定选择的任务执行模式。或者,作为一种可选实施方式,深度学习任务的任务执行模式可以默认设置为动态图执行模式。在完成依次动态图执行模式下的处理操作后,可以根据模式标识来确定是否需要切换为静态图执行模式。例如,在表示模式标识的字段的值为0的情况下,确定不需要进行任务执行模式的切换,即确定深度学习任务的任务执行模式为动态图执行模式。在表示模式标识的字段的值为1的情况下,确定需要进行任务执行模式的切换,即确定深度学习任务的任务执行模式为静态图执行模式。在动态图执行模式下的算子拆分规则可以与静态图执行模式下的算子拆分规则一致。
图4示意性示出了根据本公开另一实施例的深度学习任务处理方法的示意图。
如图4所示,该方法包括操作S401~S416。
在操作S401,执行动态图前向流程。
在操作S402,判断算子库中是否定义有反向算子。在确定算子库中定义有反向算子的情况下,执行操作S403。在确定算子库中未定义有反向算子的情况下,执行操作S404或操作S405。
在操作S403,利用反向算子执行动态图反向流程。
在操作S404,利用动态图组合算子执行动态图反向流程。
在操作S405,利用动态图基础算子执行动态图反向流程。
在完成操作S403、S404或S405之后,可以执行操作S406。
在操作S406,判断是否进行动转静操作。在确定进行动转静操作的情况下,执行操作S407。在确定不进行动转静操作的情况下,则返回并结束当前的动态图执行流程。
在操作S407,将任务执行模式切换静态图执行模式。
在操作S408,判断是否使用编译器。在确定使用编译器的情况下,执行操作S409。在确定不使用编译器的情况下,执行操作S412。
在操作S409,将前向算子和反向算子拆分为基础算子的组合。
在操作S410,使用编译器对基础算子的组合进行优化,得到执行代码。
在操作S411,使用执行器运行执行代码。在完成操作S411后,返回并结束当前的静态图执行流程。
在操作S412,判断是否执行前向算子拆分。在确定执行前向算子拆分的情况下,执行操作S413。在确定不执行前向算子拆分的情况下,执行操作S414。
在操作S413,利用静态图基础算子执行静态图前向流程。在完成操作S413之后,执行操作S414。
在操作S414,判断算子库中是否定义有反向算子。在确定算子库中定义有反向算子的情况下,执行操作S415。在确定算子库中未定义有反向算子的情况下,执行操作S416。
在操作S415,利用反向算子执行静态图反向流程。
在操作S416,利用静态图基础算子执行静态图反向流程。
在完成操作S415或操作S416之后,执行操作S411。
根据本公开的实施例,执行动态图前向流程即是完成动态图执行模式下的前向运算操作。相应的,执行动态图反向流程即使完成动态图执行模式下的反向运算操作。执行静态图前向流程即是完成静态图执行模式下的前向运算操作。执行静态图反向流程即使完成静态图执行模式下的反向运算操作。
根据本公开的实施例,通过将动态图执行模式作为默认执行模式,可以保障动态图下的高性能的动态执行。具体地,在动态图执行模式下,可以尽量使用融合后的微分算子来减少运算量,即存在已有的融合后的微分算子的情况下,便不对运算操作进行拆分。而对于高阶微分运算操作,在该高阶微分运算操作未命中对应的融合算子的情况下,再将高阶微分运算操作简化为基础算子的组合。从而一方面可以保证非高阶微分场景下动态图的性能,另一方面又在高阶微分场景下提供了动态执行的便利性。
根据本公开的实施例,在完成动转静之后,可以充分利用静态图的优化性能。具体地,在完成动态图执行模式的一次操作后,可以通过动转静的方式,借助静态图执行模式下的各类优化方案,如基于深度学习编译器的优化方案对深度学习任务的执行进行优化,从而可以降低类似优化方案的覆盖成本。
根据本公开的实施例,作为一种可选实施方式,可以分别在不同的运行环境下执行前、反向算子的拆分。具体地,将运算操作拆分为多个基础算子可以包括如下操作:
在运算操作为前向运算操作的情况下,在第一运行环境下将前向运算操作拆分为多个基础算子。在运算操作为反向运算操作的情况下,在第二运行环境下将反向运算操作拆分为多个基础算子。
根据本公开的实施例,基础算子可以包括第一基础算子、第二基础算子、第三基础算子和第四基础算子,即基础算子可以指第一基础算子、第二基础算子、第三基础算子和第四基础算子中的任意一个。
根据本公开的实施例,第一运行环境例如可以设置为python环境,第二运行环境例如可以设置为C++环境,可以在保证性能的同时减少开发成本。
根据本公开的实施例,深度学习任务的处理可以基于自动代码生成的动静统一的执行流程来实现。
图5示意性示出了根据本公开实施例的深度学习任务处理方法的执行流程示意图。
如图5所示,可以通过统一的API接口,来分别调用动态图执行模式和静态图执行模式。
根据本公开的实施例,在动态图执行模式下,可以通过扩展API来调用动态图前向API。可以通过动态图前向API来创建反向运算节点。动态图前向API和反向运算节点可以通过内核运算API来生成动态图的执行代码。
根据本公开的实施例,在需要进行算子拆分的情况下,动态图前向API或反向运算节点可以利用运算函数,调用动态图下的算子组合机制来进行算子的拆分。该运算函数可以基于动静统一的算子组合方式来构建。在完成算子的拆分后,可以调用动态图下的基础运算API来生成动态图的执行代码。
根据本公开的实施例,在静态图执行模式下,对于每个运算操作可以通过前向运算描述API,确定其前向算子描述。同时,可以自动创建对应的反向运算节点,并通过反向运算描述API来确定其反向算子描述。利用算子信息映射表可以分别创建前向算子生成器和反向算子生成器。基于运算函数,利用前向算子生成器和反向算子生成器分别处理前向算子描述和反向算子描述,可以得到前向算子和反向算子,进而构成静态图。利用执行器处理静态图,可以得到静态图的执行代码。
根据本公开的实施例,进一步地,在需要进行算子拆分时,可以通过映射表来调用组合算子API,以得到组合算子的前向描述。映射表可以是用于静态算子和算子库名称映射的映射表。组合算子API可以是用于调用不同静态图模式下组合算子的API。组合算子的前向描述可以利用反向描述API来确定组合算子的反向描述。利用算子信息映射表可以分别创建前向组合算子生成器和反向组合算子生成器。基于运算函数,利用前向组合算子生成器和反向组合算子生成器分别处理前向算子描述和反向算子描述,可以得到前向组合算子和反向组合算子。前向组合算子和反向组合算子可以调用静态图下的基础运算API来生成静态图的执行代码。此外,还可以通过自定义的方式来控制是否进行算子的拆分,在此不再赘述。
根据本公开的实施例,在动态图执行模式和静态图执行模式下,可以使用统一的微分规则将微分运算操作简化为基础算子,基础算子可以通过类似的方式将该基础算子的反向运算简化为其他的基础算子,以形成闭环。
根据本公开的实施例,建立高阶微分算子到基础算子的映射可以通过动静统一的规则注册体系来实现,在该规则注册体系中,可以利用模板的特化来完成高阶微分算子到基础算子的映射,同一套规则可以适用于动态图和静态图的执行模式。具体地,将运算操作拆分为多个基础算子可以包括如下操作:
基于注册文件,调用模板化接口,将运算操作转化为运行图。调用运行图,以确定与运算操作对应的多个基础算子模板。将多个基础算子模板转化为多个基础算子。
图6示意性示出了根据本公开实施例的规则注册体系的示意图。
如图6所示,算子库中的算子可以在Yaml注册体系中进行注册,具体地,可以通过编写Yaml注册文件的方式,实现对算子的注册。Yaml注册文件可以是一种描述文件。与算子对应的Yaml注册文件中可以包括算子的输入参数及其参数类型、输出参数及其参数类型、组合的实现方式等信息。
根据本公开的实施例,在进行算子的拆分时,可以通过Yaml注册文件生成动态图API自动生成模块、动态图组合API调用自动生成模块、动态图基础算子API自动生成模块、静态图组合API自动生成模块和静态图基础算子API自动生成模块。
根据本公开的实施例,在动态图执行模式下,动态图前向API在创建动态图反向节点后,该动态图反向节点可以通过动态图组合API调用自动生成模块来调用模板化反向组合API,来对模板化算子进行特化,以生成动态图反向组合。通过模板化反向组合API还可以调用模板化基础算子,通过动态图基础算子API自动生成模块可以对模板化基础算子进行特化,得到该算子拆分得到的基础算子。在需要进行前向算子的拆分的情况下,可以采用与反向算子拆分类似的方式,直接使用动态图前向API,通过动态图组合API调用自动生成模块来调用模板化反向组合API,从而进行模板的特征,以得到对应的基础算子。
根据本公开的实施例,在静态图执行模式下,算子的描述信息可以注册在算子信息映射表中。具体地,可以利用注册操作宏,通过用于构建组合形式的反向算子静态描述的基类,将信息注册到算子信息映射表中。通过该算子信息映射表,可以基于前向算子的名称来确定对应的反向算子。静态图组合API自动生成模块可以继承自反向算子静态描述的基类。静态图组合API自动生成模块可以调用模板化反向组合API,来对模板化算子进行特化,以生成静态图反向组合。通过模板化反向组合API还可以调用模板化基础算子,通过静态图基础算子API自动生成模块可以对模板化基础算子进行特化,得到该算子拆分得到的基础算子。
根据本公开的实施例,作为一种可选实施方式,在模板化反向组合API中,可以通过运算符重载的方式,在模板化算子中将数学运算操作以数学符号的形式进行展示,该方式可以直接在处理器中实现,减少了调用异构设备带来的成本。
根据本公开的实施例,基于模板的特化功能,运算操作可以根据底层的数据结构,将模板特化成可供动态图调用和静态图调用的版本。
根据本公开的实施例,在静态图模式下,可以构建对应静态算子描述,并将其加入静态运算图。然后可以利用封装了序列化工具的生成器以及对应的注册宏将规则统一注册给对应的运算。在动态图模式下,可以直接调用深度学习框架已有的动态图自动微分接口,通过自动代码生成体系直接生成对应反向API的调用代码。通过在动态图运行时判断是否使用不同的API,如组合形式或非组合形式的API,从而达到在需要时执行对应的组合逻辑的目的。通过如上手段可以实现统一规则在后端注册,可以同时供动态图和静态图执行使用。
图7示意性示出了根据本公开实施例的深度学习任务处理系统的示意图。
如图7所示,深度学习任务处理系统700可以包括输入接口710和任务处理装置720。
根据本公开的实施例,输入接口710可以被配置为响应于任务处理请求,基于任务处理请求携带的模式标识,确定任务处理请求携带的深度学习任务的任务执行模式。深度学习任务包括多个运算操作,任务执行模式包括动态图执行模式和静态图执行模式。
根据本公开的实施例,任务处理装置720可以被配置为基于任务执行模式,处理深度学习任务。
图8示意性示出了根据本公开另一实施例的深度学习任务处理系统的示意图。
如图8所示,输入接口710可以包括动态输入接口711和静态输入接口712。在确定深度学习任务的任务执行模式后,输入接口710可以被配置为将深度学习任务通过动态输入接口711或静态输入接口712输入至任务处理装置720进行处理。
根据本公开的实施例,作为一种可选实施方式,输入接口710可以默认地将深度学习任务通过动态输入接口711输入至任务处理装置720。动态输入接口711和静态输入接口712之间还可以包括动、静态图代码转换模块713。动、静态图代码转换模块713可以被配置为将任务执行模式从动态图执行模式切换至静态图执行模式。
根据本公开的实施例,深度学习任务处理系统700可以包括算子库730。任务处理装置720可以包括动态图处理模块721、执行器722、静态图处理模块723和神经网络编译器724。具体地,动态图处理模块721可以包括动态图前向处理单元7211和动态图反向处理单元7212。动态图处理模块721可以调用动态图前向处理单元7211来处理前向运算,调用动态图反向处理单元7212来处理反向运算。类似的,静态图处理模块723可以包括静态图前向处理单元7231和静态图反向处理单元7232。静态图处理模块723可以调用静态图前向处理单元7231来处理前向运算,调用静态图反向处理单元7232来处理反向运算。
根据本公开的实施例,动态图处理模块721被配置为:在任务执行模式为动态图执行模式的情况下,依次对于每个运算操作,基于算子库730包括的多个框架算子,确定与运算操作对应的第一组合算子。基于与运算操作对应的第一组合算子,得到与运算操作对应的第一执行代码。
根据本公开的实施例,执行器722被配置为:运行与运算操作对应的第一执行代码,以处理深度学习任务。
根据本公开的实施例,动态图处理模块721被配置为:在确定多个框架算子中存在与运算操作匹配的第一目标框架算子的情况下,确定第一目标框架算子为第一组合算子。
根据本公开的实施例,动态图处理模块721被配置为:在确定多个框架算子均与运算操作不匹配的情况下,将运算操作拆分为多个第一基础算子。基于多个第一基础算子,得到第一组合算子。
根据本公开的实施例,任务处理请求包括编译器使用标识。
根据本公开的实施例,静态图处理模块723被配置为:在任务执行模式为静态图执行模式,且编译器使用标识表示为使用编译器的情况下,基于多个运算操作,生成静态运算图。
根据本公开的实施例,神经网络编译器724被配置为:处理静态运算图,得到第二执行代码。
根据本公开的实施例,执行器722被配置为:运行第二执行代码,以处理深度学习任务。
根据本公开的实施例,静态图处理模块723被配置为:分别对于每个运算操作,将运算操作拆分为多个第二基础算子。基于与多个运算操作各自对应的多个第二基础算子,生成静态运算图。
根据本公开的实施例,静态图处理模块723被配置为:获取多个运算操作各自的拆分标识。对于多个运算操作中拆分标识表示为需要拆分的第一运算操作,将第一运算操作拆分为多个第三基础算子。对于多个运算操作中拆分标识表示为无需拆分的第二运算操作,从算子库730中确定与第二运算操作对应的第二目标框架算子。基于与至少一个第一运算操作各自对应的多个第三基础算子和与至少一个第二运算操作各自对应的第二目标框架算子,生成静态运算图。
根据本公开的实施例,深度学习编译器724被配置为:处理至少一个第一运算操作各自对应的多个第三基础算子,得到至少一个第一执行子代码。基于与至少一个第二运算操作各自对应的第二目标框架算子,得到至少一个第二执行子代码。基于至少一个第一执行子代码和至少一个第二执行子代码,得到第二执行代码。
根据本公开的实施例,静态图处理模块723包括拆分控制单元。拆分控制单元被配置为基于控制列表,确定多个运算操作各自的拆分标识。
根据本公开的实施例,静态图处理模块723被配置为:在任务执行模式为静态图执行模式,且编译器使用标识表示为不使用编译器的情况下,基于算子库730包括的多个框架算子,确定与多个运算操作各自对应的第二组合算子。基于与多个运算操作各自对应的第二组合算子,得到第三执行代码。其中,执行器被配置为运行第三执行代码,以处理深度学习任务。
根据本公开的实施例,静态图处理模块723被配置为:对于每个运算操作,在确定多个框架算子中存在与运算操作匹配的第三目标框架算子的情况下,确定第三目标框架算子为第二组合算子。
根据本公开的实施例,静态图处理模块723被配置为:对于每个运算操作,在确定多个框架算子均与运算操作不匹配的情况下,将运算操作拆分为多个第四基础算子。基于多个第四基础算子,得到第二组合算子。
根据本公开的实施例,运算操作包括前向运算操作和反向运算操作,与运算操作对应的组合算子包括与前向运算操作对应的前向组合算子和与反向运算操作对应的反向组合算子,组合算子包括第一组合算子或第二组合算子。
根据本公开的实施例,任务处理装置720被配置为:在运算操作为前向运算操作的情况下,在第一运行环境下将前向运算操作拆分为多个基础算子。在运算操作为反向运算操作的情况下,在第二运行环境下将反向运算操作拆分为多个基础算子。其中,基础算子包括第一基础算子、第二基础算子、第三基础算子和第四基础算子。
根据本公开的实施例,任务处理装置720被配置为:基于注册文件,调用模板化接口,将运算操作转化为运行图。调用运行图,以确定与运算操作对应的多个基础算子模板。将多个基础算子模板转化为多个基础算子。
根据本公开的实施例,多个运算操作包括高阶微分运算操作,其中,高阶微分运算操作表示二阶或二阶以上的微分运算操作。
需要说明的是,本公开的实施例中深度学习任务处理系统部分与本公开的实施例中深度学习任务处理方法部分是相对应的,深度学习任务处理系统部分的描述具体参考深度学习任务处理方法部分,在此不再赘述。
图9示意性示出了根据本公开实施例的深度学习任务处理装置的框图。
如图9所示,深度学习任务处理装置900可以包括第一确定模块910和处理模块920。
第一确定模块910,用于响应于任务处理请求,基于任务处理请求携带的模式标识,确定任务处理请求携带的深度学习任务的任务执行模式,其中,深度学习任务包括多个运算操作,任务执行模式包括动态图执行模式和静态图执行模式。
处理模块920,用于基于任务执行模式,处理深度学习任务。
根据本公开的实施例,处理模块920包括第一处理子模块、第一处理子模块和第一处理子模块。
第一处理子模块,用于在任务执行模式为动态图执行模式的情况下,依次对于每个运算操作,基于算子库包括的多个框架算子,确定与运算操作对应的第一组合算子。
第二处理子模块,用于基于与运算操作对应的第一组合算子,得到与运算操作对应的第一执行代码。
第三处理子模块,用于利用执行器运行与运算操作对应的第一执行代码,以处理深度学习任务。
根据本公开的实施例,第一处理子模块包括第一处理单元。
第一处理单元,用于在确定多个框架算子中存在与运算操作匹配的第一目标框架算子的情况下,确定第一目标框架算子为第一组合算子。
根据本公开的实施例,第一处理子模块包括第二处理单元和第三处理单元。
第二处理单元,用于在确定多个框架算子均与运算操作不匹配的情况下,将运算操作拆分为多个第一基础算子。
第三处理单元,用于基于多个第一基础算子,得到第一组合算子。
根据本公开的实施例,任务处理请求包括编译器使用标识。
根据本公开的实施例,处理模块920包括第四处理子模块、第五处理子模块和第六处理子模块。
第四处理子模块,用于在任务执行模式为静态图执行模式,且编译器使用标识表示为使用编译器的情况下,基于多个运算操作,生成静态运算图。
第五处理子模块,用于利用深度学习编译器处理静态运算图,得到第二执行代码。
第六处理子模块,用于利用执行器运行第二执行代码,以处理深度学习任务。
根据本公开的实施例,第四处理子模块包括第四处理单元和第五处理单元。
第四处理单元,用于分别对于每个运算操作,将运算操作拆分为多个第二基础算子。
第五处理单元,用于基于与多个运算操作各自对应的多个第二基础算子,生成静态运算图。
根据本公开的实施例,第四处理子模块包括第六处理单元、第七处理单元、第八处理单元和第九处理单元。
第六处理单元,用于获取多个运算操作各自的拆分标识。
第七处理单元,用于对于多个运算操作中拆分标识表示为需要拆分的第一运算操作,将第一运算操作拆分为多个第三基础算子。
第八处理单元,用于对于多个运算操作中拆分标识表示为无需拆分的第二运算操作,从算子库中确定与第二运算操作对应的第二目标框架算子。
第九处理单元,用于基于与至少一个第一运算操作各自对应的多个第三基础算子和与至少一个第二运算操作各自对应的第二目标框架算子,生成静态运算图。
根据本公开的实施例,第五处理子模块包括第十处理单元、第十一处理单元和第十二处理单元。
第十处理单元,用于利用深度学习编译器处理至少一个第一运算操作各自对应的多个第三基础算子,得到至少一个第一执行子代码。
第十一处理单元,用于基于与至少一个第二运算操作各自对应的第二目标框架算子,得到至少一个第二执行子代码。
第十二处理单元,用于基于至少一个第一执行子代码和至少一个第二执行子代码,得到第二执行代码。
根据本公开的实施例,深度学习任务处理装置900还包括第二确定模块。
第二确定模块,用于基于控制列表,确定多个运算操作各自的拆分标识。
根据本公开的实施例,处理模块920包括第七处理子模块、第八处理子模块和第九处理子模块。
第七处理子模块,用于在任务执行模式为静态图执行模式,且编译器使用标识表示为不使用编译器的情况下,基于算子库包括的多个框架算子,确定与多个运算操作各自对应的第二组合算子。
第八处理子模块,用于基于与多个运算操作各自对应的第二组合算子,得到第三执行代码。
第九处理子模块,用于利用执行器运行第三执行代码,以处理深度学习任务。
根据本公开的实施例,第七处理子模块包括第十三处理单元。
第十三处理单元,用于对于每个运算操作,在确定多个框架算子中存在与运算操作匹配的第三目标框架算子的情况下,确定第三目标框架算子为第二组合算子。
根据本公开的实施例,第七处理子模块包括第十四处理单元和第十五处理单元。
第十四处理单元,用于对于每个运算操作,在确定多个框架算子均与运算操作不匹配的情况下,将运算操作拆分为多个第四基础算子。
第十五处理单元,用于基于多个第四基础算子,得到第二组合算子。
根据本公开的实施例,运算操作包括前向运算操作和反向运算操作,与运算操作对应的组合算子包括与前向运算操作对应的前向组合算子和与反向运算操作对应的反向组合算子,组合算子包括第一组合算子或第二组合算子。
根据本公开的实施例,处理模块910包括第十处理子模块和第十一处理子模块。
第十处理子模块,用于在运算操作为前向运算操作的情况下,在第一运行环境下将前向运算操作拆分为多个基础算子。
第十一处理子模块,用于在运算操作为反向运算操作的情况下,在第二运行环境下将反向运算操作拆分为多个基础算子。
根据本公开的实施例,基础算子包括第一基础算子、第二基础算子、第三基础算子和第四基础算子。
根据本公开的实施例,处理模块910包括第十二处理子模块、第十三处理子模块和第十四处理子模块。
第十二处理子模块,用于基于注册文件,调用模板化接口,将运算操作转化为运行图。
第十三处理子模块,用于调用运行图,以确定与运算操作对应的多个基础算子模板。
第十四处理子模块,用于将多个基础算子模板转化为多个基础算子。
根据本公开的实施例,多个运算操作包括高阶微分运算操作,其中,高阶微分运算操作表示二阶或二阶以上的微分运算操作。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的方法。
根据本公开的实施例,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如上所述的方法。
根据本公开的实施例,一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上所述的方法。
图10示出了可以用来实施本公开实施例的深度学习任务处理方法的电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至输入/输出(I/O)接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如深度学习任务处理方法。例如,在一些实施例中,深度学习任务处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM1003并由计算单元1001执行时,可以执行上丈描述的深度学习任务处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行深度学习任务处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以是分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (38)
1.一种深度学习任务处理方法,包括:
响应于任务处理请求,基于所述任务处理请求携带的模式标识,确定所述任务处理请求携带的深度学习任务的任务执行模式,其中,所述深度学习任务包括多个运算操作,所述任务执行模式包括动态图执行模式和静态图执行模式;以及
基于所述任务执行模式,处理所述深度学习任务。
2.根据权利要求1所述的方法,其中,所述基于所述任务执行模式,处理所述深度学习任务,包括:
在所述任务执行模式为动态图执行模式的情况下,依次对于每个所述运算操作,基于算子库包括的多个框架算子,确定与所述运算操作对应的第一组合算子;
基于与所述运算操作对应的第一组合算子,得到与所述运算操作对应的第一执行代码;以及
利用执行器运行与所述运算操作对应的第一执行代码,以处理所述深度学习任务。
3.根据权利要求2所述的方法,其中,所述基于算子库包括的多个框架算子,确定与所述运算操作对应的第一组合算子,包括:
在确定所述多个框架算子中存在与所述运算操作匹配的第一目标框架算子的情况下,确定所述第一目标框架算子为所述第一组合算子。
4.根据权利要求2所述的方法,其中,所述基于算子库包括的多个框架算子,确定与所述运算操作对应的第一组合算子,包括:
在确定所述多个框架算子均与所述运算操作不匹配的情况下,将所述运算操作拆分为多个第一基础算子;以及
基于所述多个第一基础算子,得到所述第一组合算子。
5.根据权利要求1所述的方法,其中,所述任务处理请求包括编译器使用标识。
6.根据权利要求5所述的方法,其中,所述基于所述任务执行模式,处理所述深度学习任务,包括:
在所述任务执行模式为静态图执行模式,且所述编译器使用标识表示为使用编译器的情况下,基于所述多个运算操作,生成静态运算图;
利用深度学习编译器处理所述静态运算图,得到第二执行代码;以及
利用执行器运行所述第二执行代码,以处理所述深度学习任务。
7.根据权利要求6所述的方法,其中,所述基于所述多个运算操作,生成静态运算图,包括:
分别对于每个所述运算操作,将所述运算操作拆分为多个第二基础算子;以及
基于与所述多个运算操作各自对应的多个第二基础算子,生成所述静态运算图。
8.根据权利要求6所述的方法,其中,所述基于所述多个运算操作,生成静态运算图,包括:
获取所述多个运算操作各自的拆分标识;
对于所述多个运算操作中拆分标识表示为需要拆分的第一运算操作,将所述第一运算操作拆分为多个第三基础算子;
对于所述多个运算操作中拆分标识表示为无需拆分的第二运算操作,从所述算子库中确定与所述第二运算操作对应的第二目标框架算子;以及
基于与至少一个所述第一运算操作各自对应的多个第三基础算子和与至少一个所述第二运算操作各自对应的第二目标框架算子,生成所述静态运算图。
9.根据权利要求8所述的方法,其中,所述利用深度学习编译器处理所述静态运算图,得到第二执行代码,包括:
利用所述深度学习编译器处理至少一个所述第一运算操作各自对应的多个第三基础算子,得到至少一个第一执行子代码;
基于与至少一个所述第二运算操作各自对应的第二目标框架算子,得到至少一个第二执行子代码;以及
基于所述至少一个第一执行子代码和所述至少一个第二执行子代码,得到所述第二执行代码。
10.根据权利要求8或9所述的方法,还包括:
基于控制列表,确定所述多个运算操作各自的拆分标识。
11.根据权利要求5所述的方法,其中,所述基于所述任务执行模式,处理所述深度学习任务,包括:
在所述任务执行模式为静态图执行模式,且所述编译器使用标识表示为不使用编译器的情况下,基于算子库包括的多个框架算子,确定与所述多个运算操作各自对应的第二组合算子;
基于与所述多个运算操作各自对应的第二组合算子,得到第三执行代码;以及
利用执行器运行所述第三执行代码,以处理所述深度学习任务。
12.根据权利要求11所述的方法,其中,所述基于算子库包括的多个框架算子,确定与所述多个运算操作各自对应的第二组合算子,包括:
对于每个所述运算操作,在确定所述多个框架算子中存在与所述运算操作匹配的第三目标框架算子的情况下,确定所述第三目标框架算子为所述第二组合算子。
13.根据权利要求11所述的方法,其中,所述基于算子库包括的多个框架算子,确定与所述多个运算操作各自对应的第二组合算子,包括:
对于每个所述运算操作,在确定所述多个框架算子均与所述运算操作不匹配的情况下,将所述运算操作拆分为多个第四基础算子;以及
基于所述多个第四基础算子,得到所述第二组合算子。
14.根据权利要求2~13中任一项所述的方法,其中,所述运算操作包括前向运算操作和反向运算操作,与所述运算操作对应的组合算子包括与所述前向运算操作对应的前向组合算子和与所述反向运算操作对应的反向组合算子,所述组合算子包括第一组合算子或第二组合算子。
15.根据权利要求14所述的方法,其中,将所述运算操作拆分为多个基础算子,包括:
在所述运算操作为所述前向运算操作的情况下,在第一运行环境下将所述前向运算操作拆分为所述多个基础算子;以及
在所述运算操作为所述反向运算操作的情况下,在第二运行环境下将所述反向运算操作拆分为所述多个基础算子;
其中,所述基础算子包括第一基础算子、第二基础算子、第三基础算子和第四基础算子。
16.根据权利要求15所述的方法,其中,所述将所述运算操作拆分为多个基础算子,包括:
基于注册文件,调用模板化接口,将所述运算操作转化为运行图;
调用所述运行图,以确定与所述运算操作对应的多个基础算子模板;以及
将所述多个基础算子模板转化为所述多个基础算子。
17.根据权利要求1~16中任一项所述的方法,其中,所述多个运算操作包括高阶微分运算操作,其中,所述高阶微分运算操作表示二阶或二阶以上的微分运算操作。
18.一种深度学习任务处理系统,包括:
输入接口,被配置为响应于任务处理请求,基于所述任务处理请求携带的模式标识,确定所述任务处理请求携带的深度学习任务的任务执行模式,其中,所述深度学习任务包括多个运算操作,所述任务执行模式包括动态图执行模式和静态图执行模式;以及
任务处理装置,被配置为基于所述任务执行模式,处理所述深度学习任务。
19.根据权利要求18所述的系统,其中,所述任务处理装置包括动态图处理模块和执行器;
其中,所述动态图处理模块被配置为:
在所述任务执行模式为动态图执行模式的情况下,依次对于每个所述运算操作,基于算子库包括的多个框架算子,确定与所述运算操作对应的第一组合算子;以及
基于与所述运算操作对应的第一组合算子,得到与所述运算操作对应的第一执行代码;
所述执行器被配置为:
运行与所述运算操作对应的第一执行代码,以处理所述深度学习任务。
20.根据权利要求19所述的系统,其中,所述动态图处理模块被配置为:
在确定所述多个框架算子中存在与所述运算操作匹配的第一目标框架算子的情况下,确定所述第一目标框架算子为所述第一组合算子。
21.根据权利要求19所述的系统,其中,所述动态图处理模块被配置为:
在确定所述多个框架算子均与所述运算操作不匹配的情况下,将所述运算操作拆分为多个第一基础算子;以及
基于所述多个第一基础算子,得到所述第一组合算子。
22.根据权利要求18所述的系统,其中,所述任务处理请求包括编译器使用标识。
23.根据权利要求22所述的系统,其中,所述任务处理装置包括静态图处理模块、神经网络编译器和执行器;
其中,所述静态图处理模块被配置为:
在所述任务执行模式为静态图执行模式,且所述编译器使用标识表示为使用编译器的情况下,基于所述多个运算操作,生成静态运算图;
所述神经网络编译器被配置为:
处理所述静态运算图,得到第二执行代码;
所述执行器被配置为:
运行所述第二执行代码,以处理所述深度学习任务。
24.根据权利要求23所述的系统,其中,所述静态图处理模块被配置为:
分别对于每个所述运算操作,将所述运算操作拆分为多个第二基础算子;以及
基于与所述多个运算操作各自对应的多个第二基础算子,生成所述静态运算图。
25.根据权利要求23所述的系统,其中,所述静态图处理模块被配置为:
获取所述多个运算操作各自的拆分标识;
对于所述多个运算操作中拆分标识表示为需要拆分的第一运算操作,将所述第一运算操作拆分为多个第三基础算子;
对于所述多个运算操作中拆分标识表示为无需拆分的第二运算操作,从所述算子库中确定与所述第二运算操作对应的第二目标框架算子;以及
基于与至少一个所述第一运算操作各自对应的多个第三基础算子和与至少一个所述第二运算操作各自对应的第二目标框架算子,生成所述静态运算图。
26.根据权利要求25所述的系统,其中,所述深度学习编译器被配置为:
处理至少一个所述第一运算操作各自对应的多个第三基础算子,得到至少一个第一执行子代码;
基于与至少一个所述第二运算操作各自对应的第二目标框架算子,得到至少一个第二执行子代码;以及
基于所述至少一个第一执行子代码和所述至少一个第二执行子代码,得到所述第二执行代码。
27.根据权利要求25或26所述的系统,其中,所述静态图处理模块包括拆分控制单元;
所述拆分控制单元被配置为基于控制列表,确定所述多个运算操作各自的拆分标识。
28.根据权利要求22所述的系统,其中,所述静态图处理模块被配置为:
在所述任务执行模式为静态图执行模式,且所述编译器使用标识表示为不使用编译器的情况下,基于算子库包括的多个框架算子,确定与所述多个运算操作各自对应的第二组合算子;以及
基于与所述多个运算操作各自对应的第二组合算子,得到第三执行代码;
其中,所述执行器被配置为运行所述第三执行代码,以处理所述深度学习任务。
29.根据权利要求28所述的系统,其中,所述静态图处理模块被配置为:
对于每个所述运算操作,在确定所述多个框架算子中存在与所述运算操作匹配的第三目标框架算子的情况下,确定所述第三目标框架算子为所述第二组合算子。
30.根据权利要求28所述的系统,其中,所述静态图处理模块被配置为:
对于每个所述运算操作,在确定所述多个框架算子均与所述运算操作不匹配的情况下,将所述运算操作拆分为多个第四基础算子;以及
基于所述多个第四基础算子,得到所述第二组合算子。
31.根据权利要求19~30中任一项所述的系统,其中,所述运算操作包括前向运算操作和反向运算操作,与所述运算操作对应的组合算子包括与所述前向运算操作对应的前向组合算子和与所述反向运算操作对应的反向组合算子,所述组合算子包括第一组合算子或第二组合算子。
32.根据权利要求31所述的系统,其中,所述任务处理装置被配置为:
在所述运算操作为所述前向运算操作的情况下,在第一运行环境下将所述前向运算操作拆分为所述多个基础算子;以及
在所述运算操作为所述反向运算操作的情况下,在第二运行环境下将所述反向运算操作拆分为所述多个基础算子;
其中,所述基础算子包括第一基础算子、第二基础算子、第三基础算子和第四基础算子。
33.根据权利要求32所述的系统,其中,所述任务处理装置被配置为:
基于注册文件,调用模板化接口,将所述运算操作转化为运行图;
调用所述运行图,以确定与所述运算操作对应的多个基础算子模板;以及
将所述多个基础算子模板转化为所述多个基础算子。
34.根据权利要求18~33中任一项所述的系统,其中,所述多个运算操作包括高阶微分运算操作,其中,所述高阶微分运算操作表示二阶或二阶以上的微分运算操作。
35.一种深度学习任务处理装置,包括:
第一确定模块,用于响应于任务处理请求,基于所述任务处理请求携带的模式标识,确定所述任务处理请求携带的深度学习任务的任务执行模式,其中,所述深度学习任务包括多个运算操作,所述任务执行模式包括动态图执行模式和静态图执行模式;以及
处理模块,用于基于所述任务执行模式,处理所述深度学习任务。
36.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-17中任一项所述的方法。
37.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-17中任一项所述的方法。
38.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310573958.9A CN116483482B (zh) | 2023-05-19 | 2023-05-19 | 深度学习任务处理方法、系统、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310573958.9A CN116483482B (zh) | 2023-05-19 | 2023-05-19 | 深度学习任务处理方法、系统、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116483482A true CN116483482A (zh) | 2023-07-25 |
CN116483482B CN116483482B (zh) | 2024-03-01 |
Family
ID=87217932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310573958.9A Active CN116483482B (zh) | 2023-05-19 | 2023-05-19 | 深度学习任务处理方法、系统、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483482B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020166112A1 (en) * | 2001-03-05 | 2002-11-07 | Martin Grant Edmund | Method and apparatus for a statistically based estimate of embedded software execution time |
CN109358944A (zh) * | 2018-09-17 | 2019-02-19 | 深算科技(重庆)有限公司 | 深度学习分布式运算方法、装置、计算机设备及存储介质 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN112529206A (zh) * | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 一种模型运行方法和系统 |
KR20210065817A (ko) * | 2019-11-27 | 2021-06-04 | 주식회사 가토랩 | 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치 |
CN113095474A (zh) * | 2020-01-09 | 2021-07-09 | 微软技术许可有限责任公司 | 深度学习模型的资源使用情况预测 |
CN114201242A (zh) * | 2021-12-10 | 2022-03-18 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备以及存储介质 |
CN114492737A (zh) * | 2021-12-31 | 2022-05-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
CN114841326A (zh) * | 2022-05-19 | 2022-08-02 | 北京百度网讯科技有限公司 | 深度学习框架的算子处理方法、装置、设备和存储介质 |
CN114840322A (zh) * | 2022-05-17 | 2022-08-02 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN115185685A (zh) * | 2022-07-06 | 2022-10-14 | 重庆软江图灵人工智能科技有限公司 | 基于深度学习的人工智能任务调度方法、装置及存储介质 |
WO2023284347A1 (zh) * | 2021-07-16 | 2023-01-19 | 华为云计算技术有限公司 | 任务执行方法及装置 |
CN115700482A (zh) * | 2021-07-16 | 2023-02-07 | 华为云计算技术有限公司 | 任务执行方法及装置 |
WO2023071238A1 (zh) * | 2021-11-01 | 2023-05-04 | 寒武纪行歌(南京)科技有限公司 | 计算图的编译、调度方法及相关产品 |
-
2023
- 2023-05-19 CN CN202310573958.9A patent/CN116483482B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020166112A1 (en) * | 2001-03-05 | 2002-11-07 | Martin Grant Edmund | Method and apparatus for a statistically based estimate of embedded software execution time |
CN109358944A (zh) * | 2018-09-17 | 2019-02-19 | 深算科技(重庆)有限公司 | 深度学习分布式运算方法、装置、计算机设备及存储介质 |
CN112529206A (zh) * | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 一种模型运行方法和系统 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
KR20210065817A (ko) * | 2019-11-27 | 2021-06-04 | 주식회사 가토랩 | 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치 |
CN113095474A (zh) * | 2020-01-09 | 2021-07-09 | 微软技术许可有限责任公司 | 深度学习模型的资源使用情况预测 |
WO2023284347A1 (zh) * | 2021-07-16 | 2023-01-19 | 华为云计算技术有限公司 | 任务执行方法及装置 |
CN115700482A (zh) * | 2021-07-16 | 2023-02-07 | 华为云计算技术有限公司 | 任务执行方法及装置 |
WO2023071238A1 (zh) * | 2021-11-01 | 2023-05-04 | 寒武纪行歌(南京)科技有限公司 | 计算图的编译、调度方法及相关产品 |
CN114201242A (zh) * | 2021-12-10 | 2022-03-18 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备以及存储介质 |
US20230115163A1 (en) * | 2021-12-31 | 2023-04-13 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for processing data, and electronic device, storage medium and program product |
CN114492737A (zh) * | 2021-12-31 | 2022-05-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
CN114840322A (zh) * | 2022-05-17 | 2022-08-02 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN114841326A (zh) * | 2022-05-19 | 2022-08-02 | 北京百度网讯科技有限公司 | 深度学习框架的算子处理方法、装置、设备和存储介质 |
CN115185685A (zh) * | 2022-07-06 | 2022-10-14 | 重庆软江图灵人工智能科技有限公司 | 基于深度学习的人工智能任务调度方法、装置及存储介质 |
Non-Patent Citations (4)
Title |
---|
MOHAMMAD AMIN BASIRI: "Synergy of Deep Learning and Artificial Potential Field Methods for Robot Path Planning in the Presence of Static and Dynamic Obstacles", 《2022 30TH INTERNATIONAL CONFERENCE ON ELECTRICAL ENGINEERING (ICEE)》, pages 1 - 8 * |
我是天才很好: "深度学习中常见的动态图和静态图", pages 1 - 2, Retrieved from the Internet <URL:《blog.51cto.com/u_15274944/5043251》> * |
李慧博: "基于深度神经网络和门控循环单元的动态图表示学习方法", 《计算机应用》, pages 3432 - 3437 * |
李韦: "面向深度学习的多媒体流处理框架研究与应用", 《万方》, pages 1 - 67 * |
Also Published As
Publication number | Publication date |
---|---|
CN116483482B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Parada et al. | A model driven approach for android applications development | |
Perchat et al. | Component based framework to create mobile cross-platform applications | |
JP7350923B2 (ja) | ディープラーニングフレームワークのオペレータ登録方法、装置、デバイス及び記憶媒体 | |
US10949171B1 (en) | Tools, mechanisms, and processes for transforming modules for an application into pluggable modules | |
US11775269B2 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
US20180074793A1 (en) | Composable action flows | |
CN112214210A (zh) | 后勤业务规则引擎及其配置方法、装置、设备和存储介质 | |
CN112270403B (zh) | 构建深度学习的网络模型的方法、装置、设备和存储介质 | |
Osvaldo Jr et al. | Developing software systems to Big Data platform based on MapReduce model: An approach based on Model Driven Engineering | |
US10387126B2 (en) | Data marshalling optimization via intermediate representation of workflows | |
CN115202623A (zh) | 一种业务能力使用方法、装置以及设备 | |
US11275567B1 (en) | Making communication interfaces pluggable by using mechanisms comprising of exchange/broker for communication interfaces | |
CN116483482B (zh) | 深度学习任务处理方法、系统、装置、设备及介质 | |
CN109144750B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN116561075B (zh) | 动态链接库文件的生成方法、算子的调用方法及装置 | |
EP4191407A1 (en) | Method and device for generating and registering ui service package and loading ui service | |
CN116560847B (zh) | 任务处理方法、装置、电子设备以及存储介质 | |
TWI803875B (zh) | 業務邏輯表示模型的建模裝置及建模方法 | |
Cardoso et al. | A generative-oriented model-driven design environment for customizable video surveillance systems | |
CN113157360B (zh) | 用于处理api的方法、装置、设备、介质和产品 | |
CN110361986B (zh) | 仿真文件的生成方法和装置、仿真系统 | |
Pogrebnoy | Constructing graph models for software system development and analysis | |
CN114169525A (zh) | 推理框架的调用方法和调用装置 | |
Zhai et al. | MobiMVL: A Model-Driven Mobile Application Development Approach for End-Users | |
CN115145569A (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 |