CN116822656B - 人工智能网络模型计算系统中数据交互的方法及计算系统 - Google Patents
人工智能网络模型计算系统中数据交互的方法及计算系统 Download PDFInfo
- Publication number
- CN116822656B CN116822656B CN202311079352.6A CN202311079352A CN116822656B CN 116822656 B CN116822656 B CN 116822656B CN 202311079352 A CN202311079352 A CN 202311079352A CN 116822656 B CN116822656 B CN 116822656B
- Authority
- CN
- China
- Prior art keywords
- model
- data
- input data
- input
- address
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000003993 interaction Effects 0.000 title claims abstract description 18
- 238000013473 artificial intelligence Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 31
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种人工智能网络模型计算系统中数据交互的方法及计算系统。所述方法包括:第一系统准备第一模型所需的第一输入数据,所述第一模型在第二系统中运行。所述第一系统将所述第一输入数据拷贝到所述第二系统。所述第二系统利用所述第一输入数据运行所述第一模型。所述第二系统中所述第一模型运行完成后,所述第二系统返回第一输出数据的地址到所述第一系统。所述第一系统利用所述第一模型的所述第一输入数据和/或所述第一输出数据,准备第二模型所需第一输入数据,所述第二模型在所述第二系统中运行。根据本发明的技术方案,数据传输过程中所占据内存空间小,且数据传输速度快。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种人工智能网络模型计算系统中进行数据交互的方法及计算系统。
背景技术
随着人工智能技术与机器学习和深度学习技术的不断发展与成熟,用于深度学习计算的AI芯片技术也越来越趋于成熟。在各种生产、生活场景下,从医疗保健到自动驾驶,从智慧生活到智慧城市,AI芯片在生活与生产中扮演着重要角色。
同时,随着AI模型的发展,模型内部需要的矩阵乘法、卷积、向量加法等运算也越来越繁复,对算力的需求一日高过一日。现行的AI芯片多专注于深度学习算法的计算速度,以模型为单位,依靠部署机器学习和深度学习算法训练出来的模型进行运算。相较于通用芯片,AI芯片在功能上有少部分缺失。在实际运行AI芯片进行运算时,需要频繁的与通用芯片进行数据交互。
为此,需要一种技术方案,能够提高芯片或系统间的数据交互速度与可靠性。
发明内容
本发明旨在提供用于人工智能网络模型计算系统中进行数据交互的方法及计算系统,能够更高效的在两个设备之间传递数据。
根据本发明的一方面,提供一种人工智能网络模型计算系统中进行数据交互的方法,包括:
第一系统准备第一模型所需的第一输入数据,所述第一模型在第二系统中运行;
所述第一系统将所述第一输入数据拷贝到所述第二系统;
所述第二系统利用所述第一输入数据运行所述第一模型;
所述第二系统中所述第一模型运行完成后,所述第二系统返回第一输出数据的地址到所述第一系统;
所述第一系统利用所述第一模型的所述第一输入数据和/或所述第一输出数据,准备第二模型所需第一输入数据,所述第二模型在所述第二系统中运行。
其中,所述第一系统具有所述第二系统中所述第一输入数据和所述第一输出数据的所有权。
根据一些实施例,所述第一系统将所述第一输入数据拷贝到所述第二系统,包括:
所述第一系统向所述第二系统申请内存空间;
根据所述申请,所述第二系统分配内存空间并返回所述内存空间的第一数据地址;
所述第一系统通过第一消息通信协议将所述第一输入地址和所述第一输入数据发送至所述第二系统;
所述第二系统将所述第一输入数据拷贝到所述第一输入地址上。
根据一些示例实施例,所述第二系统利用所述第一输入数据运行所述第一模型,包括:
所述第一系统将返回的所述第一输入地址序列化;
所述第一系统将序列化的所述第一输入地址发送给所述第二系统;
所述第二系统将所述第一系统传输的序列化的所述第一输入地址进行反序列化处理,并根据得到的所述第一输入地址获得所述第一输入数据;
所述第二系统利用获得的所述第一输入数据运行所述第一模型。
根据一些示例实施例,所述第二系统返回第一输出数据的地址到所述第一系统,包括:
所述第二系统将所述第一模型的所述第一输出数据的第一输出地址进行序列化,并将序列化后的所述第一输出地址传输回所述第一系统中;
所述第一系统将所述第一输出地址反序列化。
根据一些实施例,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,包括:
所述第一系统复用位于所述第二系统的所述第一输入数据或部分所述第一输入数据作为所述第二模型的所述第二输入数据。
根据一些实施例,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,包括:
所述第一系统复用所述第一模型的所述第一输出数据或部分所述第一输出数据作为所述第二模型的所述第二输入数据。
根据一些实施例,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,包括:
所述第一系统复用位于所述第二系统的所述第一输入数据或部分所述第一输入数据、以及所述第一模型的所述第一输出数据或部分所述第一输出数据作为所述第二模型的所述第二输入数据。
根据一些实施例,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,包括:
所述第一系统将所述第二系统中所述第一模型的所述第一输入数据和所述第一输出数据释放;
所述第一系统重新准备所述第二系统中所述第二模型需要的所述第二输入数据。
根据一些实施例,所述方法,包括:
所述第一系统将所述第二系统中所述第一模型的所述第一输入数据释放;和/或所述第一系统将所述第二系统中所述第一模型的所述第一输出数据释放。
根据一些实施例,所述第一系统和所述第二系统包括两独立进程或两个不同设备。
根据本发明的另一方面,提供一种计算系统,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本发明的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本发明的实施例,通过本发明所述第一系统对外部系统内部存储空间进行申请,之后由所述第一系统构建相应模型所需数据,拷贝相应地址,第二系统运行相应模型后,返回输出数据地址到所述第一系统中,所述第一系统按照后续运行模型与前一模型数据关系,构建后续运行模型输入数据。根据本发明的技术方案,省去了数据传输过程中不必要的内存占用和拷贝,数据传输过程中所占据内存空间小,数据传输速度快。这可弥补现行数据交互传输中出现的速度低、内存占用高的问题,提高计算效率。
根据一些实施例,所述第一系统获得所述第二系统传回的所述第一模型的输出数据地址,同时由第一系统获取该数据地址对应数据的所有权。所述第一系统会可在运行时判断需要哪些输出结果,对需要的结果实时获取。对于不需要的数据,可直接将所述第二系统中数据释放。这样可以实现内存空间的实时清理,大大减少因数据传输所占用的资源,加快数据处理、传输速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据示例实施例用于人工智能网络模型计算系统中进行数据交互的方法流程图。
图2示出根据示例实施例的第一系统向第二系统传输数据的方法流程图。
图3示出根据示例实施例用于人工智能网络模型计算系统中进行数据交互的时序图。
图4示出根据示例实施例的所述第一系统利用所述第一模型输入数据和/或起输出数据,准备第二模型所需输入数据的方法流程图。
图5示出根据示例性实施例的计算系统的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本发明概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本发明所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
在传统的跨设备数据传输中,系统之间进行数据传输时,需要序列化、传输、反序列化三个步骤,而深度学习算法的输入数据量是非常大的,数据准备和传输在整个运算过程的时间占比很多。
不仅如此,数据传输的过程也是值传递的,系统数据端传递复制数据值到模型运行系统中,就会释放掉原来系统端的数据。而多数情况下,模型运行系统内实际运行的多个模型之间存在关联关系。例如,模型运行系统中模型①的输入或者输出为模型②的输入。在传统的跨设备数据传输的模式下,数据系统端的数据是无法复用的,数据系统端在准备模型②的输入时,无法感知模型运行系统中模型①的输出和输入是否释放,因此必须重新准备数据然后传输。
为此,本发明提出一种人工智能模型执行计算的方法,可充分弥补现行AI计算时数据交互传输中出现的速度低、内存占用高的问题。通过第一系统,对芯片或系统内部存储空间进行申请,之后由所述第一系统构建相应模型所需数据,拷贝对应地址到芯片或系统内部,运行相应模型后,返回输出数据地址到所述第一系统中,所述第一系统按照后续运行模型与前一模型数据关系,构建后续运行模型输入数据。根据本发明的技术方案,省去了数据传输过程中不必要的内存占用和拷贝,减少了数据传输的时间。
图1示出根据示例实施例用于人工智能网络模型计算系统中进行数据交互的方法流程图。
参见图1,在S101,所述第一系统准备第一模型所需输入数据。所述第一模型在第二系统中运行。
根据一些实施例,所述第一系统、第二系统并非特指某种设备,可以是同一或不同设备上边的两个独立进程,也可以是CPU和专用AI芯片。所述第一系统、第二系统可包含独立的程序及内部存储空间。另外,本领域技术人员理解,这里所谓的第一系统、第二系统并不是限制于两个系统,而是可表示任意个系统与另外任意个系统之间进行数据交互。
根据一些实施例,所述第一模型以及下述第二模型可为实现某种运算功能的功能模块,例如神经网络模型。
根据示例实施例,所述第一系统可为基于CPU的系统,所述第二系统可为基于AI芯片的系统,其中第一模型以及下述第二模型可为实现某项功能的预训练的神经网络模型。
在S103, 所述第一系统将所述输入数据拷贝到所述第二系统。
根据一些实施例,所述第一系统向所述第二系统申请内存空间,用以存储所述第一模型的输入数据。根据所述申请,所述第二系统分配内存空间,将分配好的数据地址序列化,并传输回所述第一系统中。所述第一系统,根据所述数据地址,拷贝所述第一模型输入数据到所述第二系统中。
根据一些实施例,所述第一系统拷贝所述第一模型输入数据到第二系统中,可通过rpc(例如,grpc)通信协议发送给所述第二系统,所述第二系统将数据拷贝到给定的内存地址上。
根据一些实施例,所述将传输数据序列化的方式有多种方式可选,具体方式可按照不同数据类型及具体应用场景情况做选择,本方案不做限制。
在S105,所述第二系统利用所述第一输入数据运行所述第一模型。
根据一些实施例,为使第二系统找到第一输入数据,所述第一系统将返回的所述第一输入地址序列化,将序列化的所述第一输入地址发送给所述第二系统。所述第二系统将所述第一系统传输的序列化的所述第一输入地址进行反序列化处理,并根据得到的所述第一输入地址获得所述第一输入数据,从而可利用获得的所述第一输入数据运行所述第一模型。
在S107,所述第二系统中所述第一模型运行完成后,所述第二系统返回输出数据的地址到所述第一系统。
根据一些实施例,在所述第二系统中,运行所述第一模型,所述模型的具体运行方式不影响方案实施,在此不做描述。第一模型运行完成后,所述第二系统获得其输出数据,并保存到所述第二系统的内存空间内。所述第二系统将所述输出数据的存储地址序列化,而后将所述序列化的输出数据地址传输到第一系统中。所述数据传输直接传输数据地址,根据运算需要再通过逻辑调用,可直接调用第二系统中的数据。这样的处理方式,大大减少了所需传输的数据长度,提高数据传输速度。
根据一些实施例,所述第一系统获得所述第二系统传回的所述第一模型的输出数据地址,同时由第一系统获取该数据地址对应数据的所有权。所述第一系统可在运行时判断需要哪些输出结果,对需要的结果实时获取。对于不需要的数据,可直接将所述第二系统中数据释放。这样可以实现内存空间的实时清理,大大减少因数据传输所占用的资源,加快数据处理、传输速度。
根据示例实施例,所述第一系统收到所述第二系统传回的所述第一模型输出数据的序列化地址后,对所述地址进行反序列化处理。
根据一些实施例,对数据进行反序列化处理是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程,数据反序列化可使用相应数据序列化的方法利用调用相应的反序列化程序部分,对已序列化的数据进行转换解读。数据的序列化与反序列化处理在数据传输中十分常见,此处不做过多赘述。
在S109, 所述第一系统利用所述第一模型输入数据和/或输出数据,准备第二模型所需输入数据。所述第二模型在所述第二系统中运行。
根据一些示例实施例,所述第一系统拥有所述第二系统中输出数据的所有权,利用其所有权直接通过逻辑调用获取相应所需数据。实际操作情况下,所述第一系统构建新一模型的输入数据,需要了解前一模型的输入、输出数据与新模型的输入数据是否存在关联,是相同或者是前一模型输入或输出数据的一部分。若有关联,所述第一系统利用对第二系统中的数据所有权,对其地址中的数据进行调用或释放。
根据一些实施例,所述第一系统会在运行时判断需要那些输出结果。所述第一系统将利用对所述第二系统返回地址中数据的所有权实时调用获取数据,或是在不需要的时候将所述第二系统中数据释放掉。在多个模型的情况下,可判断当前模型需要的输入是否和之前模型输入或者输出有关系,如是就不需要重新从所述第一系统向所述端传输数据,这样就可以大大减少因为数据传输所占用的资源。
图2示出根据示例实施例用于人工智能网络模型计算系统中进行数据交互的方法中第一系统向第二系统传输数据的方法流程图。
参见图2,根据一些实施例,所述第一系统将所述输入数据拷贝到所述第二系统。具体实施过程中,包括:
S1030,所述第一系统向所述第二系统申请内存空间,用于存储所述第一模型所需的输入数据。
根据一些实施例,所述内存空间的申请通过调用函数和相应接口实现。
S1031,根据所述申请,所述第二系统分配内存空间并返回所述内存空间的第一数据地址。例如,所述第二系统将分配好的数据地址序列化,并传输回所述第一系统中。
S1033,所述第一系统通过第一消息通信协议将所述第一输入地址和所述第一输入数据发送至所述第二系统。
根据一些实施例,所述数据传输可由所述第一系统调用接口函数,通过GRPC通信发送给第二系统。
S1037,所述第二系统将所述第一输入数据拷贝到所述第一输入地址上。
根据一些实施例,所述序列化、反序列化、数据传输这个三个步骤操作的仅仅是一个指针大小的数据。省去传输过程中,大批量数据处理的运算过程,减少资源占用,保证了数据传输的安全可靠性。
根据一些实施例,所述第一系统与第二系统间的数据传输内容均为相应数据序列化后的数据信息,具体序列化、反序列化方式,已在前文中描述,此处不再详述。
根据一些实施例,所述第一系统准备所述第二系统中第一模型的输入数据,并向所述第二系统申请数据存储地址。根据申请给到的地址,将所述输入数据序列化后拷贝到第二系统中,所述第二系统将数据反序列化后用于第一模型的运行。所述第一模型运行结束后,将输出数据的地址序列化处理,并将所述地址的序列化数据传回所述第一系统。所述第一系统将所述地址反序列化后留存。根据后续所述第一系统对构建第二模型输入数据的数据需求,对其地址中的数据进行调用,或直接释放。
图3示出根据示例实施例用于人工智能网络模型计算系统中进行数据交互的方法步骤时序图。
参见图3,根据示例实施,人工智能网络模型计算系统中进行数据交互的方法包括如下过程。
(1)所述第一系统调用数据接口在所述第二系统申请内存空间,并准备数据。
根据一些实施例,所述第一系统对输入数据准备同样依靠上层系统传入。具体的数据类型可为数据、图片、音频、视频等。所述第二系统分配内存空间,将分配好的数据地址序列化,并传输回所述第一系统中。所述第一系统根据所述数据地址,拷贝所述第一模型输入数据到所述第二系统中。
(2)将(1)返回的所述第二系统的数据地址序列化。所述序列化操作由在所述第一系统内完成。
(3)将(2)序列化完的数据传给所述第二系统。所述地址数据仅为一个指针大小的数据。
(4)所述第二系统接受(3)传输的数据,并找到(1)准备的数据。
(5)所述第二系统运行所述第一模型,并将输出结果的地址序列化。
(6)所述第二系统将输出结果地址序列化,并传输给所述第一系统。
(7)所述第一系统反序列化(6)接收到的数据,运行时根据逻辑调用获取所述第二系统上的结果数据。根据一些实施例,可直接调用接口函数,实现数据调用。
(8)第一系统具有所述第一模型输入和输出的数据所有权,可构造所述第二模型的输入数据,根据情况释放所述第一模型的输入/输出数据。根据实际情况会有下边几种可能:
A.所述第二模型的输入和第一模型的输入和输出有关系(与所述第一模型输入和输出相同,或者为所述第一模型输入和输出的一部分),此时不需要重新申请数据,复用所述第一模型的输入和输出数据即可。
B.所述第二模型的输入和第一模型的输入有关系(和所述第一模型输入相同,或者为所述第一模型输入的一部分),此时不需要重新申请数据,复用所述第一模型的输入即可,并释放掉所述第一模型的输出数据。
C.所述第二模型的输入和所述第一模型的输出有关系(和所述第一模型的输出相同,或者为所述第一模型输出的一部分),此时同样不需要申请新的数据,复用所述第一模型的输出即可,并释放掉所述第一模型的输入数据。
根据一些示例实施例,所述第一系统构建所述第二模型的输入数据,需要了解所述第一模型的输入、输出数据与所述第二模型的输入数据是否存在关联,是相同还是所述输入或输出数据的一部分。若有关联,所述第一系统利用对第二系统中的数据所有权,对其地址中的数据进行调用或释放。
D.所述第二模型的输入和所述第一模型的输入、输出都没有关系,此时需要释放所述第一模型的输入、输出,重新构造输入数据。
根据一些实施例,所述第一系统中,对待运行的新模型的输入数据的构建,依赖于所述待运行新模型与已运行模型相关的输入输出数据的关系,依照模型间的数据关系,构建所述待运行模型的输入数据。
参见图3,所述步骤9-13与上述步骤3-8类似,此处不再赘述。
根据示例实施例,在所述第一系统中,第二模型的输入数据构建完成后,所述第一系统与第二系统的间的数据传输流程与运行所述第一模型的过程相同。
根据一些实施例,所述第二系统中,待运行的模型可为多个,所述各模型运行过程中,两系统间的数据传输与第一、第二模型的运行类似。
根据一些实施例,所述第一系统准备数据时,调用对应接口在第二系统申请内存,并将输入数据拷贝到所述第二系统中。序列化、反序列化、地址数据传输操作的仅仅是一个指针大小的数据。所述第一模型运行完成后,所述第二系统向所述第一系统传输的数据同样是一个地址,同时由所述第一系统获取该数据的所有权,所述第一系统在运行时判断需要那些输出结果,实时获取,并在不需要的时候将所述第二系统数据释放掉。因为所述第一系统拥有所述第二系统数据的所有权,在多个模型的情况下,可判断当前模型需要的输入是否和之前模型输入或者输出有关系,如是就不需要重新从所述第一模型向所述第二模型传输数据,这样就可以大大减少因为数据传输所占用的资源。
图4示出根据示例实施例用于人工智能网络模型计算系统中进行数据交互的方法中所述第一系统利用所述第一模型输入数据和/或起输出数据,准备第二模型所需输入数据的方法流程图。
参见图4,所述第一系统利用所述第一模型输入数据和/或起输出数据,准备第二模型所需输入数据的方法包括如下过程。
在401,判断所述第二模型的输入数据与所述第一模型的输入数据和输出数据是否有关系。即根据逻辑判断所述第二模型输入数据与所述第一模型输入和输出相同,或者为所述第一模型输入和输出的一部分。若判断为是则执行402,若判断为否则跳转到403。
在402,经判断所述第二模型的输入数据与所述第一模型的输入数据和输出数据有关系,此情况下不需要重复申请数据,所述第一系统可复用第一模型的输入数据和输出数据。
根据一些实施例,在实际运行过程中,所述第一系统传输所述第一模型的输入数据地址和输出数据地址到所述第二系统中,所述第二系统按照所述第一系统所给出的数据地址,在所述第二系统上获取相应地址内的数据,作为所述第二模型的输入数据。
举例来说,实际应用中十字路口行人是否闯红灯,输入为一张图片数据,需要两个模型完成,模型①识别人,模型②识别闯红灯行为。模型①输出的数据为人在输入图片数据的位置,那么模型②的输入就和输入图片数据和模型①的输出都有关系,不需要在重新构造数据。模型②运行完成后,可以先判断输出结果是否有闯红灯行为,没有则忽略,有则将输出从第二系统复制到第一系统端。
在403,判断所述第二模型的输入数据与所述第一模型的输入数据是否有关系。例如,根据逻辑判断所述第二模型输入数据和所述第一模型的输入数据是否相同,或者是否为所述第一模型输入数据的一部分。若判断为是则转到404,若判断为否则跳转到407。
在404,经判断所述第二模型的输入数据与所述第一模型的输入数据有关系,此情况下不需要重复申请数据,所述第一系统可复用第一模型的输入数据。
根据一些实施例,在实际运行过程中,所述第一系统传输所述第一模型的输入数据地址到所述第二系统中,所述第二系统按照所述第一系统所给出的数据地址,在所述第二系统上获取相应地址内的数据,作为所述第二模型的输入数据。
在405,所述第一系统释放第二系统中第一模型的输出数据。
在407,判断所述第二模型的输入数据与所述第一模型的输出数据是否有关系,例如,根据逻辑判断所述第二模型输入数据和所述第一模型的输出数据是否相同,或者是否为所述第一模型输出数据的一部分。若判断为是则执行409,若判断为否则执行413。
在409,经判断所述第二模型的输入数据与所述第一模型的输出数据有关系,不需要重复申请数据,所述第一系统可复用第一模型的输出数据。
根据一些实施例,所述第二模型的输入数据与所述第一模型的输入或输出数据有关系是所述第二模型的输入数据与所述第一模型的输入或输出数据完全相同,或者所述第二模型的输入数据是所述第一模型的输入或输出数据的一部分。
根据一些实施例,当所述第二模型的输入数据是所述第一模型输入和/或输入数据的一部分时,系统可根据相应地址获取相关数据。例如,假设第一模型的输入为1~10000共10000个数据,输入数据地址为 00000000,长度为10000。 第一模型输出为 20000 ~30000 共10000个数据,输出数据地址为 00100000,长度为10000。当第二模型的输入为第一模型输入的前1000个数据,那么第一系统直接使用第二模型输入数据地址为00000000,长度为1000。当第二模型的输入为第一模型输出的后1000个数据,那么第二模型的输入数据地址为0108999,长度为1000。
根据一些实施例,在实际运行过程中,所述第一系统传输所述第一模型的输出数据地址到所述第二系统中,所述第二系统按照所述第一系统所给出的数据地址,在所述第二系统上获取相应地址内的数据,作为所述第二模型的输入数据。
在411,所述第一系统释放第二系统中第一模型的输入数据。
在413,经判断所述第二模型的输入数据与所述第一模型的输入、输出数据都没有关系,所述第一系统重新构建所述第二模型所需数据。
根据一些实施例,所述第一系统对输入数据的重新构建依靠上层系统传入。具体的数据类型不仅限于数字数据,同样可为图片、音频、视频等。
在415,释放第二系统中第一模型的输入、输出数据。
根据一些实施例,上述对所述第一模型中的数据进行释放可由所述第一系统直接调用第二系统上的内存管理函数实现。
根据一些实施例,所述第二系统中的运算模型可为多个,所述第一系统在准备各个模型输入数据过程中,重复上述操作。
根据一些实施例,所述第一系统构建所述第二模型的输入数据之前,还需要对是否运行所述第二系统中第二模型进行验证。此时,需要在所述第一模型运行结束后,返回部分数据和一个逻辑型变量,验证后续程序模型是否需要继续运行。举个简单的例子,假设模型N的输出由10000个具体数据和1个bool数据组成,先判断bool数据是否为真,若为真就将模型N的10000个输入数据给到模型N+1作为输入数据,为假就直接释放模型N的输出,不需要继续运行模型N+1了。
图5示出根据本发明示例实施例的计算系统的框图。
如图5所示,计算系统30包括处理器12和存储器14。计算系统30还可以包括总线22、网络接口16以及I/O接口18。处理器12、存储器14、网络接口16以及I/O接口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算系统30还可包括为处理器12进行加速的高性能显示适配器(GPU)20。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本发明实施例的方法。
计算系统30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以是无线网络接口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算系统30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本发明实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本发明的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。
Claims (6)
1.一种人工智能网络模型计算系统中数据交互的方法,其特征在于,包括:
第一系统准备第一模型所需的第一输入数据,所述第一模型在第二系统中运行;
所述第一系统将第一输入数据拷贝到所述第二系统,包括:
所述第一系统向所述第二系统申请内存空间;
根据所述申请,所述第二系统分配内存空间并返回所述内存空间的第一输入地址;
所述第一系统通过第一消息通信协议将所述第一输入地址和第一输入数据发送至所述第二系统;
所述第二系统将第一输入数据拷贝到所述第一输入地址上;
所述第二系统利用第一输入数据运行所述第一模型,包括:
所述第一系统将返回的所述第一输入地址序列化;
所述第一系统将序列化的所述第一输入地址发送给所述第二系统;
所述第二系统将所述第一系统传输的序列化的所述第一输入地址进行反序列化处理,并根据得到的所述第一输入地址获得第一输入数据;
所述第二系统利用获得的第一输入数据运行所述第一模型;
所述第二系统中所述第一模型运行完成后,所述第二系统返回第一输出数据的地址到所述第一系统,包括:
所述第二系统将所述第一模型的第一输出数据的第一输出地址进行序列化,并将序列化后的所述第一输出地址传输回所述第一系统中;
所述第一系统将所述第一输出地址反序列化;
所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,所述第二模型在所述第二系统中运行;
其中,所述第一系统具有所述第二系统中第一输入数据和第一输出数据的所有权,在不需要的时候,所述第一系统将所述第二系统中所述第一模型的第一输入数据释放;和/或,所述第一系统将所述第二系统中所述第一模型的第一输出数据释放,
其中,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,包括:
所述第一系统复用位于所述第二系统的第一输入数据或部分第一输入数据作为所述第二模型的第二输入数据;或者
所述第一系统复用所述第一模型的第一输出数据或部分第一输出数据作为所述第二模型的第二输入数据;或者
所述第一系统复用位于所述第二系统的第一输入数据或部分第一输入数据、以及所述第一模型的第一输出数据或部分第一输出数据作为所述第二模型的第二输入数据;或者
所述第一系统将所述第二系统中所述第一模型的第一输入数据和第一输出数据释放,所述第一系统重新准备所述第二系统中所述第二模型需要的第二输入数据。
2.根据权利要求1所述的方法,其特征在于,所述第一系统和所述第二系统包括两独立进程。
3.根据权利要求1所述的方法,其特征在于,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据,还包括:
当所述第二模型的输入数据是所述第一模型的第一输入数据的一部分时,系统根据相应地址获取相关数据。
4.根据权利要求1所述的方法,其特征在于,所述第一系统利用所述第一模型的第一输入数据和/或第一输出数据,准备第二模型所需的第二输入数据之前,还包括:
对是否运行所述第二系统中的所述第二模型进行验证。
5.一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,使得所述处理器执行如权利要求1-4中任一项所述的方法。
6.一种计算系统,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311079352.6A CN116822656B (zh) | 2023-08-25 | 2023-08-25 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311079352.6A CN116822656B (zh) | 2023-08-25 | 2023-08-25 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116822656A CN116822656A (zh) | 2023-09-29 |
CN116822656B true CN116822656B (zh) | 2023-12-26 |
Family
ID=88122417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311079352.6A Active CN116822656B (zh) | 2023-08-25 | 2023-08-25 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116822656B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746A (zh) * | 2024-03-28 | 2024-05-03 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905366A (zh) * | 2021-04-26 | 2021-06-04 | 北京世冠金洋科技发展有限公司 | 仿真模型的运行控制方法、装置及电子设备 |
CN113553204A (zh) * | 2021-09-16 | 2021-10-26 | 支付宝(杭州)信息技术有限公司 | 一种数据传输方法及装置 |
CN115357416A (zh) * | 2022-10-19 | 2022-11-18 | 南京芯驰半导体科技有限公司 | 一种跨系统进行数据处理的方法及装置 |
CN116341609A (zh) * | 2023-02-23 | 2023-06-27 | 浙江省北大信息技术高等研究院 | 一种网络模型运行方法、系统、电子设备及存储介质 |
-
2023
- 2023-08-25 CN CN202311079352.6A patent/CN116822656B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905366A (zh) * | 2021-04-26 | 2021-06-04 | 北京世冠金洋科技发展有限公司 | 仿真模型的运行控制方法、装置及电子设备 |
CN113553204A (zh) * | 2021-09-16 | 2021-10-26 | 支付宝(杭州)信息技术有限公司 | 一种数据传输方法及装置 |
CN115357416A (zh) * | 2022-10-19 | 2022-11-18 | 南京芯驰半导体科技有限公司 | 一种跨系统进行数据处理的方法及装置 |
CN116341609A (zh) * | 2023-02-23 | 2023-06-27 | 浙江省北大信息技术高等研究院 | 一种网络模型运行方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116822656A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116822656B (zh) | 人工智能网络模型计算系统中数据交互的方法及计算系统 | |
CN110442560A (zh) | 一种日志重演方法、装置、服务器和存储介质 | |
CN111698205B (zh) | 服务调用方法及相关设备 | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
US20230405455A1 (en) | Method and apparatus for processing cloud gaming resource data, computer device, and storage medium | |
CN112257733A (zh) | 一种模型迭代方法、第二电子设备及存储介质 | |
CN113489584A (zh) | 一种区块链中随机数的处理方法、装置和电子设备 | |
CN109800261B (zh) | 双数据库连接池的动态控制方法、装置及相关设备 | |
CN108337301A (zh) | 应用程序的网络请求处理方法、装置、服务器及存储介质 | |
CN116028025A (zh) | 一种汽车服务化模型框架生成方法、装置、设备及介质 | |
CN114281521A (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
JP2023057543A (ja) | アプリケーションマイクロサービスのための異種グラフ作成のための方法、装置、コンピュータプログラム製品(アプリケーションマイクロサービスのための異種グラフ作成) | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN108268499A (zh) | 一种网页显示方法及装置 | |
CN108429665A (zh) | 一种并发通信传输数据的方法 | |
CN115002011B (zh) | 流量双向测试方法、装置、电子设备及存储介质 | |
CN115309491A (zh) | 一种平台系统的逻辑算法 | |
CN115794400A (zh) | 深度学习模型的内存管理方法、装置、设备及存储介质 | |
CN112637540B (zh) | 多客户端的音视频通话连接方法、装置、设备及存储介质 | |
CN116204201B (zh) | 业务处理方法和装置 | |
CN113709314B (zh) | 智能坐席外呼方法、装置、电子设备及计算机存储介质 | |
CN114006883B (zh) | 一种跨网数据穿透交互的方法、装置、设备及存储介质 | |
CN106446590A (zh) | 一种公告通知的生成方法和系统 | |
CN112015759B (zh) | 保单检测方法、装置、电子设备及介质 | |
US20230065354A1 (en) | Method for sharing resource, method for creating service, electronic device, and storage medium |
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 |