CN112835625A - 流水线配置方法、装置、可读存储介质和电子设备 - Google Patents

流水线配置方法、装置、可读存储介质和电子设备 Download PDF

Info

Publication number
CN112835625A
CN112835625A CN201911158560.9A CN201911158560A CN112835625A CN 112835625 A CN112835625 A CN 112835625A CN 201911158560 A CN201911158560 A CN 201911158560A CN 112835625 A CN112835625 A CN 112835625A
Authority
CN
China
Prior art keywords
algorithm
pipeline
task
determining
executed
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.)
Pending
Application number
CN201911158560.9A
Other languages
English (en)
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.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi Technology 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 Beijing Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN201911158560.9A priority Critical patent/CN112835625A/zh
Publication of CN112835625A publication Critical patent/CN112835625A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)

Abstract

公开了一种流水线配置方法、装置、可读存储介质和电子设备,所述方法通过获取流水线指令以及确定当前可用的算法集合和可用资源,进一步确定所述流水线指令中包括的属性信息对应的算法以及所述各算法之间的连接关系,并为所述各算法分配对应的可用资源,最终通过所述确定的算法、各算法之间的连接关系和各算法对应的可用资源配置用于处理所述流水线指令对应的待执行任务的流水线。本公开可以实现针对不同的待执行任务个性化的配置对应的流水线。

Description

流水线配置方法、装置、可读存储介质和电子设备
技术领域
本公开涉及计算机技术领域,尤其涉及一种流水线配置方法、装置、可读存储介质和电子设备。
背景技术
在处理较为复杂的任务时,例如涉及深度学习领域的任务,为提高处理的效率和速度,以及节省服务器的内存,通常服务器会采用流水线的方式把各个所需的功能或算法作为流水线的处理环节串在一起,得到用于处理待执行任务的流水线。相关技术中,应用于任务处理的流水线具有灵活性差,针对性不强等缺点。
发明内容
有鉴于此,本公开实施例提供一种流水线配置方法、装置、可读存储介质和电子设备,以实现针对不同的待执行任务个性化的配置对应的流水线。
第一方面,本公开实施例公开了一种流水线配置方法,所述方法包括:
接收终端发送的流水线指令,所述流水线指令中包括待执行任务的至少一个属性信息;
确定算法集合和可用资源信息,所述可用资源信息包括可用的至少一个处理器信息和可用的内存信息;
根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源;
根据所述算法、各算法之间的连接关系以及对应的资源配置用于处理所述待执行任务的流水线。
进一步地,所述处理器信息中包括处理器类型和处理器数量,其中,所述处理器类型包括中央处理器和图形处理器。
进一步地,所述根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源包括:
根据所述流水线指令中包括的属性信息,在所述算法集合中确定对应的算法以及所述各算法之间的连接关系;
根据所述可用资源信息分别为所述各算法分配对应的可用资源。
进一步地,所述根据所述可用资源信息分别为所述各算法分配对应的可用资源包括:
分别为所述各算法分配对应的内存;
分别确定所述各算法对应的处理器信息。
进一步地,所述分别确定所述各算法对应的处理器信息包括:
分别确定处理所述各算法的参考处理器类型;
响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
进一步地,所述根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源包括:
根据所述流水线指令中包括的属性信息确定对应的处理器信息;
根据所述对应的处理器信息以及所述属性信息,确定用于处理待执行任务的算法和各算法之间的连接关系;
分别为所述各算法分配对应的内存。
进一步地,所述根据所述流水线指令中包括的属性信息确定对应的处理器信息包括:
根据流水线指令中包括的属性信息确定参考处理器类型;
响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
第二方面,本公开实施例公开了一种流水线配置方法,所述方法包括:
确定待执行任务;
确定所述待执行任务的至少一个属性信息;
根据所述属性信息确定流水线指令;
向服务器发送所述流水线指令,以使所述服务器根据所述流水线指令配置用于处理所述待执行任务的流水线。
第三方面,本公开实施例公开了一种流水线配置的装置,所述装置包括:
指令确定模块,用于接收终端发送的流水线指令,所述流水线指令中包括待执行任务的至少一个属性信息;
资源确定模块,用于确定算法集合和可用资源信息,所述可用资源信息包括至少一个可用的处理器信息和可用的内存信息;
算法确定模块,用于根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源;
流水线配置模块,用于根据所述算法、各算法之间的连接关系以及对应的资源配置用于处理所述待执行任务的流水线。
第四方面,本公开实施例公开了一种流水线配置的装置,所述装置包括:
任务确定模块,用于确定待执行任务;
属性确定模块,用于确定所述待执行任务的至少一个属性信息;
指令确定模块,用于根据所述属性信息确定流水线指令;
指令发送模块,用于向服务器发送所述流水线指令,以使所述服务器根据所述流水线指令配置用于处理所述待执行任务的流水线。
第五方面,本公开实施例公开了一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面或第二方面中任一项所述的方法。
第六方面,本公开实施例公开了一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面或第二方面中任一项所述的方法。
本公开实施例通过获取流水线指令以及确定当前可用的算法集合和可用资源,进一步确定所述流水线指令中包括的属性信息对应的算法以及所述各算法之间的连接关系,并为所述各算法分配对应的可用资源,最终通过所述确定的算法、各算法之间的连接关系和各算法对应的可用资源配置用于处理所述流水线指令对应的待执行任务的流水线。本公开可以实现针对不同的待执行任务个性化的配置对应的流水线。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1为本公开一示例性实施例的流水线配置方法的系统示意图;
图2为本公开一示例性实施例的服务器侧流水线配置方法的流程图;
图3为本公开一示例性实施例的终端侧流水线配置方法的流程图;
图4为本公开一示例性实施例的流水线配置方法的示意图;
图5为本公开一示例性实施例的流水线配置方法的系统结构示意图;
图6为本公开一示例性实施例的一种流水线的示意图;
图7为本公开一示例性实施例的一种流水线配置装置的示意图;
图8为本公开一示例性实施例的另一种流水线配置装置的示意图;
图9为本公开一示例性实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1为本公开一示例性实施例的流水线配置方法的系统示意图,如图1所示,实现所述流水线配置方法的系统包括服务器10和终端11。
其中,所述终端11例如可以是智能手机、计算机、平板电脑等设备,用于与所述服务器10进行通信。所述终端11可以通过接收其他外部设备发送的任务或在本地生成任务的方式确定待执行任务。终端可以通过解析该待执行任务,确定待执行任务的至少一个属性信息,也可以直接获取该待执行任务的至少一个属性信息。例如,用户通过所述终端11手动选择的方式确定与所述待执行任务对应的至少一个属性信息,终端11可以直接获取被选中的待执行任务对应的至少一个属性信息。根据所述确定的全部或部分属性信息确定流水线指令,并发送至所述服务器10。所述服务器10接收到所述流水线指令后根据所述流水线指令中包含的属性信息和当前服务器10中可用的算法和资源确定用于处理所述待执行任务的算法、各算法之间的连接关系、与所述各算法对应的处理器类型、数量和服务器内存。
图2为本公开一示例性实施例的服务器侧流水线配置方法的流程图,如图2所示,所述方法包括:
步骤S100、接收终端发送的流水线指令。
其中,所述流水线指令中包括待执行任务的至少一个属性信息,该流水线指令由终端发送至服务器。所述属性信息包括用于表征所述待执行任务格式、内容、目的、基本属性等属性信息,所述格式例如可以是XML,JSON,CSV,YAML等,所述内容用于表征所述待执行任务中包括的信息或属性,例如可以包括“人脸”、“人脸数量”、“场景”、“色调”、“图像大小”、“视频长度”等。所述目的例如可以包括“人脸识别”、“车牌检测”、“图像分割”等。所述基本属性例如可以包括文件大小、优先选择的处理器等。可选的,所述流水线指令中还可以包括用于表征所述流水线指令的指令标识,所述属性信息中还可以包括用于表征所述待执行任务的任务标识。本公开对流水线指令中包括的属性信息的类别、数量均不做限制。
步骤S200、确定算法集合和可用资源信息。
其中,所述算法集合中包括至少一种算法,所述可用资源信息包括可用的至少一个处理器信息和可用的内存信息。所述算法集合可以为包含服务器当前全部可用算法的算法集合,或者,由用于处理当前待执行任务的全部可用算法组成的算法集合。其中,可通过读取当前的硬件配置信息,确定可用资源。其中,所述各算法可以将所述待执行任务或上一算法的输出作为输入,处理后转换为对应的输出,以实现对所述待执行任务的文件解析、内容识别、内容比较、格式转换等处理。所述可用的处理器信息包括服务器中当前可用的处理器类型和处理器数量,所述处理器类型可以包括中央处理器和图形处理器。其中,所述图形处理器优先处理计算量大、并行性高的任务,所述中央处理器优先处理复杂度高的任务以及各类调度任务。所述可用的内存信息用于表征服务器内目前未被占用且可分配给各算法的内存,以为所述各算法处理待执行任务过程中产生的数据提供缓存空间。
步骤S300、根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源。
在本实施例的一个可选的实现方式中,所述确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源可以包括:
步骤S310、根据所述流水线指令中包括的属性信息,在所述算法集合中确定对应的算法以及所述各算法之间的连接关系。
其中,所述属性信息和算法的对应关系,以及所述各算法之间的连接关系可分别由服务器预先设定的算法对应规则和算法顺序规则确定。所述算法对应规则用于表征所述属性信息和各可用算法之间的对应关系,其中一个属性信息可以对应一个或多个算法。例如,当所述属性信息中包括任务场景为夜间场景时,对应补光算法,当所述属性信息中包括文件格式为视频时,对应视频解析算法,当所述属性信息中包括任务目的为人脸识别时,对应人脸特征提取算法、人脸检测算法、特征对比算法。所述算法顺序规则用于表征所述各算法的执行顺序。例如,可以设定所述算法执行顺序依次为算法a、算法b、算法c。以所述流水线指令中包括待执行任务的属性信息为夜间场景、视频、人脸识别为例进行说明,所述算法执行顺序为依次执行视频解码算法、补光算法、人脸检测算法、人脸特征提取算法、特征对比算法。
其中,在根据属性信息确定用于处理待执行任务的算法时,可分别确定与各属性信息对应的算法,将与各属性信息对应的算法确定为用于处理待执行任务的算法。还可以确定部分属性信息对应的算法,并结合其他各属性信息对应的算法,确定用于处理待执行任务的算法。例如,属性信息包括:人数<30人、停留时间长、任务目的为人脸识别、文件格式为视频。可根据人数<30人、停留时间长、任务目的为人脸识别这三个属性信息确定对应的算法为:人脸特征提取算法、人脸检测算法、特征对比算法。根据文件格式为视频确定对应的算法为视频解码算法。应理解,算法集合中可能包括不同的人脸检测算法,可结合人数<30人、停留时间长、任务目的为人脸识别,确定适用于人数<30人、停留时间长情况下的人脸检测算法。还可以确定全部属性信息对应的算法,本公开对根据所述流水线指令中包括的属性信息,在所述算法集合中确定对应的算法的方式不做限制。
步骤S320、根据所述可用资源信息分别为所述各算法分配对应的可用资源。
举例来说,所述可用资源根据所述可用资源信息确定并分配,所述可用资源信息包括可用的处理器信息和可用的内存信息,因此在本实施例中,所述分配对应资源的过程可以包括:
步骤S321、分别为所述各算法分配对应的内存。
举例来说,服务器可以根据所述步骤S310确定的算法,以及所述待执行任务的文件大小预测各算法在处理所述待执行任务的过程中产生的临时数据大小。再根据预测的临时数据大小以及可用资源信息中的可用内存信息为所述各算法分配合理的内存,以防止为某些算法分配的内存过小,或某些算法占用过多内存。
步骤S322、分别为所述各算法分配对应的处理器信息。
其中,所述处理器信息包括处理所述各算法的处理器类型和处理器数量,所述处理器的类型可以包括中央处理器和图形处理器。因所述各处理器的性能不同,所以可以为不同的算法分配不同的处理器,从而保证流水线运行过程中具有较高的处理效率,并提高服务器的资源利用率。
在本实施例中,所述分别为所述各算法分配对应的处理器信息包括:
步骤S323、分别确定处理所述各算法的参考处理器类型。
其中,所述处理各算法的参考处理器类型可以由所述流水线指令中的属性信息直接指定,即根据所述属性信息确定优先选择的处理器类型为参考处理器类型。进一步地,所述服务器还可以确定各算法需要的所述参考处理器数量。所述参考处理器的类型也可以根据所述算法的计算量以及所述待执行任务的数量确定。以人脸识别为例进行说明,在处理人脸识别任务时需要确定视频中的人脸图像,以及对比所述人脸图像是否为预存的标准人脸图像。对于包含多个人脸的视频,在解析视频,识别视频中人脸图像并统计数量时可以使用中央处理器进行处理;在对比所述检测到的各人脸图像和标准人脸图像时可以通过图形处理器并行处理所述各人脸图像。可选的,可以根据所述待执行任务中人脸图像的数量确定处理器数量。
步骤S324、响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
举例来说,对于步骤S321中确定的各算法对应的参考处理器类型,当服务器在所述步骤S200中确定的可用资源中包括所述参考处理器类型时,确定所述参考处理器类型为所述算法对应的处理器类型。例如当所述算法对应的参考处理器类型为图形处理器,所述服务器的可用资源中包括可用的处理器类型为中央处理器和图形处理器时,即确定所述算法对应的处理器类型为图形处理器。
步骤S325、响应于所述可用资源中不包括参考处理器类型,在可用资源中确定一个处理器类型为所述算法对应的处理器类型。
举例来说,对于步骤S321中确定的各算法对应的参考处理器类型,当服务器在所述步骤S200中确定的可用资源中的可用处理器类型不包括所述参考处理器类型,或者可用资源中的参考处理器数量少于属性信息中指定的处理器数量时,在可用资源中确定一个处理器类型为所述算法对应的处理器类型,并确定对应的处理器数量。例如当所述算法对应的参考处理器为图形处理器,所述服务器可用资源中包含的处理器为中央处理器时,即确定所述算法对应的处理器为中央处理器。
通过所述实施方式可以先根据流水线指令中包含的属性信息确定对应的算法,再进一步确定各算法的执行顺序,并根据所述各算法的特性针对性的为各算法分配对应的处理器和内存资源,可以提高最终得到的流水线的工作效率。
在本实施例的另一个可选的实施方式中,所述确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源还可以包括:
步骤S310’、根据所述流水线指令中包括的属性信息确定对应的处理器信息。
其中,所述流水线指令中包括的属性信息中包含指定对应处理器类型内容,进一步地,还可以包含指定的对应处理器数量。因此,所述确定处理器信息的过程可以包括:
步骤S311’、根据流水线指令确定参考处理器类型。
举例来说,服务器根据所述流水线指令中的内容确定用于处理所述待执行任务的至少一个处理器类型为参考处理器类型。可选的,还可以同时确定所述参考处理器的数量。
步骤S312’、响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
举例来说,对于步骤S311’中确定的各算法对应的参考处理器类型,当服务器在所述步骤S200中确定的可用资源中包括所述参考处理器类型时,确定所述参考处理器类型为所述算法对应的处理器类型。例如当所述算法对应的参考处理器类型为图形处理器,所述服务器的可用资源中包括可用的处理器类型为中央处理器和图形处理器时,即确定所述算法对应的处理器类型为图形处理器。
步骤S313’、响应于所述可用资源中不包括参考处理器类型,在可用资源中确定一个处理器类型为所述算法对应的处理器类型。
举例来说,对于步骤S311’中确定的各算法对应的参考处理器类型,当服务器在所述步骤S200中确定的可用资源中的可用处理器类型不包括所述参考处理器类型,或者可用资源中的参考处理器数量少于属性信息中指定的处理器数量时,在可用资源中确定一个处理器类型为所述算法对应的处理器类型,并确定对应的处理器数量。例如当所述算法对应的参考处理器为图形处理器,所述服务器可用资源中包含的处理器为中央处理器时,即确定所述算法对应的处理器为中央处理器。
步骤S320’、根据所述对应的处理器信息以及所述属性信息,确定用于处理待执行任务的算法和各算法之间的连接关系。
在一种可能的实现方式中,可以根据对应的处理器信息,在可用的算法集合中,确定与处理器信息对应的算法;根据属性信息,在与处理器信息对应的算法中,确定用于处理待执行任务的算法,并确定各算法之间的连接关系。
举例来说,所述服务器预先设定所述各处理器类型对应的算法,可以根据流水线指令中的属性信息以及预先设定的处理器类型和算法之间的对应关系确定用于处理所述待执行任务的算法。
例如,流水线指令中的属性信息中包括GPU卡(1070Ti)。服务器可以读取硬件配置,例如,确定包括GPU卡(1070Ti),服务器可以在可用的算法集合中,确定与GPU卡(1070Ti)对应的算法。服务器可以根据流水线指令中的属性信息,从与处理器类型对应的算法中,基于算法对应规则确定用于处理待执行任务的算法。例如,属性信息还包括:任务目的为人脸识别、文件格式为视频。属性信息对应的算法包括:视频解码算法、人脸特征提取算法、人脸检测算法以及特征对比算法。服务器可以将由GPU卡(1070Ti)处理的视频解码算法、人脸特征提取算法、人脸检测算法以及特征对比算法确定为用于处理待执行任务的算法。再根据服务器中预先设定的算法顺序规则确定所述上述各算法之间的连接关系。其中,根据属性信息,在与处理器信息对应的算法中,确定用于处理待执行任务的算法的方法并确定算法之间的连接关系与根据属性信息,在所述算法集合中确定对应的算法并确定算法之间的连接关系的方法类似,在此不再赘述。
步骤S330’、分别为所述各算法分配对应的内存。
举例来说,服务器可以根据所述步骤S320’确定的算法,以及所述待执行任务的文件大小预测各算法在处理所述待执行任务的过程中产生的临时数据大小。再根据预测的临时数据大小以及可用资源信息中的可用内存信息为所述各算法分配合理的内存,以防止为某些算法分配的内存过小,或某些算法占用过多内存。
通过所述实施方式可以先根据流水线指令中包含的属性信息确定对应的处理器,再进一步确定与处理器对应的算法,以及所述算法的执行顺序,最终根据所述各算法的特性针对性的为各算法分配对应的资源,可以减少在确定算法、以及选择处理器过程中的计算量,提高处理配置流水线的效率。
步骤S400、根据所述算法、各算法之间的连接关系以及对应的资源配置用于处理所述待执行任务的流水线。
举例来说,服务器根据步骤S300确定的算法、各算法之间的连接关系以及对应的资源配置流水线,所述流水线用于处理所述流水线指令对应的待执行任务。
图4为本公开一示例性实施例的流水线配置方法的示意图,如图4所示,所述终端40用于确定待执行任务,并解析所述待执行任务,生成与所述待执行任务对应的流水线指令,将所述流水线指令发送至服务器41。所述服务器41接收到所述流水线指令后确定可用的算法集合和资源,进一步确定流水线配置规则,配置用于处理所述待执行任务的流水线。
所述方法通过获取流水线指令以及确定当前可用的算法集合和可用资源,进一步确定所述流水线指令中包括的属性信息对应的算法以及所述各算法之间的连接关系,并为所述各算法分配对应的可用资源,最终通过所述确定的算法、各算法之间的连接关系和各算法对应的可用资源生成用于处理所述流水线指令对应的待执行任务的流水线。所述方法可以实现根据流水线指令针对不同的待执行任务确定对应的流水线配置规则,个性化的配置对应的流水线。所述流水线配置方法可以在有新算法或者新的硬件资源时直接将新算法添加为可用资源,动态选择适用,而不需要改变整体系统。
图3为本公开一示例性实施例的终端侧流水线配置方法的流程图,如图所示,所述方法包括:
步骤S500、确定待执行任务。
其中,所述待执行任务通过终端接收其他外部设备发送的任务或在本地生成任务的方式确定。例如可以是人脸识别任务、图像处理任务、语音转换任务等。
步骤S600、确定所述待执行任务的至少一个属性信息。
其中,所述属性信息可以通过终端解析所述待执行任务确定,也可以由用户初步审核所述待执行任务后,通过终端上预设的控件输入所述终端。
进一步地,所述属性信息包括用于表征所述待执行任务格式、内容、目的、基本属性等属性信息,所述格式例如可以是XML,JSON,CSV,YAML等,所述内容用于表征所述待执行任务中包括的信息或属性,例如可以包括“人脸”、“人脸数量”、“场景”、“色调”、“图像大小”、“视频长度”等。所述目的例如可以包括“人脸识别”、“车牌检测”、“图像分割”等。所述基本属性例如可以包括文件大小、优先选择的处理器等。
步骤S700、根据所述属性信息确定流水线指令。
其中,根据步骤S600确定的属性信息进一步确定与所述待执行任务对应的流水线指令。可选的,为确定生成的流水线与所述待执行任务之间的对应关系,所述流水线指令中还包括用于表征所述待执行任务的任务标识。
步骤S800、向服务器发送所述流水线指令,以使所述服务器根据所述流水线指令配置用于处理所述待执行任务的流水线。
其中,所述终端将根据步骤S700确定的流水线指令发送至服务器,由服务器根据所述流水线指令确定对应的流水线配置规则,以得到用于处理所述待执行任务的流水线。
所述方法可以通过用户根据待执行任务自行选择确定属性信息,进一步确定流水线指令,发送至服务器以确定用于处理所述待执行任务的流水线。针对不同的任务以及用户需求个性化配置流水线,解决了目前流水线配置的单一问题。
图5为本公开一示例性实施例的流水线配置方法的系统结构示意图,如图5所示,所述流水线配置方法的系统包括终端50和服务器51,其中,所述终端50中包括任务配置页面、用户管理页面和其他功能页面,所述服务器51中包括任务配置模块、流水线管理器和其他功能模块。
举例来说,在应用所述系统配置用于人脸识别的流水线时,通过所述终端50中的任务配置页面确定待执行的人脸识别任务,即确定所述待进行人脸识别的视频、图片等数据。所述用户管理页面用于用户输入与所述待执行任务对应的属性信息,例如所述待进行人脸识别的视频长度、视频中人脸数量、视频场景、指定的执行处理器类型和数量。并根据所述属性信息生成对应流水线指令。例如,当接收到的待执行任务为人脸识别任务,用户可以根据所述人脸识别任务特征输入对应的属性信息,最终确定流水线指令为{人数<30人、停留时间长、GPU卡(1070Ti)、需要人脸属性}。所述其他功能页面可以用于实现终端其他功能,例如根据用户的触控指令与服务器之间进行信息传输,将所述流水线指令发送至所述服务器。或接收并显示所述服务器发送的流水线配置规则,由用户确认。
所述服务器51在接收所述人脸识别任务的流水线指令后,通过任务配置模块解析所述流水线指令以确定所述待执行任务为人脸识别任务,进一步进行流水线配置。所述流水线管理器获取所述流水线指令中的属性信息后,在服务器的算法库和资源池中确定可用的算法集合和可用资源信息,根据所述属性信息、可用的算法集合和可用资源信息确定流水线配置规则,配置用于处理所述人脸识别任务的流水线。例如,当接收到的所述流水线指令为{人数<30人、停留时间长、GPU卡(1070Ti)、需要人脸属性、任务目的为人脸识别、文件格式为视频}时,服务器可以根据所述流水线指令、服务器当前可用的算法集合和可用的资源信息确定用于配置流水线的流水线配置规则为{"workers":["WorkerDecoder","WorkerDetectFace","WorkerFaceFeature","WorkerComparisonVideo","WorkerSaveImage","WorkerFaceAttributes"],"co nnections":[{"WorkerDecoder":"WorkerDetectFace"},{"WorkerDetectFace":"WorkerFaceFeature"},{"WorkerDetectFace":"WorkerSaveImage"},{"Worke rFaceFeature":"WorkerFaceAttributes"},{"WorkerFaceAttributes":"WorkerC omparisonVideo"}]}。上述各算法由GPU卡(1070Ti)处理。其中,配置流水线的流水线配置规则为:配置的算法包括:由GPU卡(1070Ti)处理的解码算法WorkerDecoder,人脸检测算法WorkerDetectFace,人脸特征提取算法WorkerFaceFeature,视频对比算法WorkerComparisonVideo,图像存储算法WorkerSaveImage以及人脸属性提取算法WorkerFaceAttributes。各算法之间的连接关系包括:解码算法连接人脸检测算法,人脸检测算法连接图像存储算法,图像存储算法连接人脸检测算法,人脸特征提取算法连接人脸属性提取算法,人脸属性提取算法连接视频对比算法。以人脸检测算法连接图像存储算法,图像存储算法连接人脸特征提取算法,人脸特征提取算法连接人脸属性提取算法为例进行各算法之间连接关系的示例性说明。其中。人脸检测算法把检测到的人脸数据传递给图像存储算法进行存储,图像存储算法将存储的图像传递给人脸特征提取算法对来自人脸检测算法的人脸数据进行人脸特征提取,并把提取到的人脸特征传递给人脸属性提取算法进行处理。再通过属性对比算法将人脸属性提取算法提取的属性进行对比。
图6为本公开一示例性实施例的一种流水线示例的示意图,如图6所示,所述流水线通过图5中服务器51的流水线管理器确定,包括按如下顺序执行的算法:获取视频流算法60、视频解码流算法61、人脸检测算法62、特征提取算法63、特征对比算法64、输出结果算法65。
举例来说,所述服务器在确定如图6所示的流水线指令后,先通过所述获取视频流算法60确定待执行的视频数据,通过所述视频解码流算法61对所视频数据进行解码得到视频内容,通过所述人脸检测算法62确定所述视频内容中的人脸图像,通过所述特征提取算法63提取所述人脸图像的特征信息,再通过所述特征对比算法64将所述提取到的特征信息与服务器中预存的特征信息进行对比得到对比结果,根据所述对比结果得到所述人脸识别任务的执行结果,最终通过输出结果算法65将所述执行结果输出。可选的,所述输出的执行结果由终端获取。
图7为本公开一示例性实施例的一种流水线配置装置的示意图。如图7所示,所述装置包括指令确定模块70、资源确定模块71、算法确定模块72和流水线配置模块73。
其中,所述指令确定模块70用于接收终端发送的流水线指令,所述流水线指令中包括待执行任务的至少一个属性信息。所述资源确定模块71用于确定算法集合和可用资源信息,所述可用资源信息包括至少一个可用的处理器信息和可用的内存信息。所述算法确定模块72用于根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源。所述流水线配置模块73用于根据所述算法、各算法之间的连接关系以及对应的资源配置用于处理所述待执行任务的流水线。
进一步地,所述处理器信息中包括处理器类型和处理器数量,其中,所述处理器类型包括中央处理器和图形处理器。
进一步地,所述算法确定模块包括:
第一算法确定子模块,用于根据所述流水线指令中包括的属性信息在所述算法集合中确定对应的算法以及所述各算法之间的连接关系;
第一资源确定子模块,用于根据所述可用资源信息分别为所述各算法分配对应的可用资源。
进一步地,所述第一资源确定子模块包括:
内存确定单元,用于分别为所述各算法分配对应的内存;
第一处理器确定单元,用于分别确定所述各算法对应的处理器信息。
进一步地,所述第一处理器确定单元包括:
第一处理器确定子单元,用于分别确定处理所述各算法的参考处理器类型和处理器数量;
第二处理器确定子单元,用于响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
进一步地,所述第一处理器确定单元还包括:
第三处理器确定子单元,用于响应于所述可用资源中不包括参考处理器类型,在可用资源中确定一个处理器类型为所述算法对应的处理器类型。
进一步地,所述算法确定模块包括:
处理器确定子模块,用于根据所述流水线指令中包括的属性信息确定对应的处理器信息;
第二算法确定子模块,用于根据所述对应的处理器信息以及所述属性信息,确定用于处理待执行任务的算法和各算法之间的连接关系;
内存确定子模块,用于分别为所述各算法分配对应的内存。
进一步地,所述处理器确定子模块包括:
第二处理器确定单元,用于根据流水线指令确定参考处理器类型;
第三处理器确定单元,用于响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
进一步地,所述待执行任务为人脸识别任务。
所述装置通过获取流水线指令以及确定当前可用的算法集合和可用资源,进一步确定所述流水线指令中包括的属性信息对应的算法以及所述各算法之间的连接关系,并为所述各算法分配对应的可用资源,最终通过所述确定的算法、各算法之间的连接关系和各算法对应的可用资源配置用于处理所述流水线指令对应的待执行任务的流水线。所述装置可以实现根据流水线指令针对不同的待执行任务确定对应的流水线配置规则,个性化的配置对应的流水线。
图8为本公开一示例性实施例的另一种流水线配置装置的示意图,如图8所示,所述装置包括任务确定模块80、属性确定模块81、指令确定模块82和指令发送模块83。
具体地,所述任务确定模块80用于确定待执行任务。所述属性确定模块81用于确定所述待执行任务的至少一个属性信息。所述指令确定模块82用于根据所述属性信息确定流水线指令。所述指令发送模块83用于向服务器发送所述流水线指令,以使所述服务器根据所述流水线指令配置用于处理所述待执行任务的流水线。
所述装置可以通过用户根据待执行任务自行选择确定属性信息,进一步确定流水线指令,发送至服务器以确定用于处理所述待执行任务的流水线。针对不同的任务以及用户需求个性化配置流水线,解决了目前流水线配置的单一问题。
图9为本公开一示例性实施例的电子设备的示意图,如图9所示,在本实施例中,所述电子设备可以为服务器或终端等,所述终端例如可以是手机、电脑、平板电脑等智能设备。如图所示,所述电子设备包括:至少一个处理器91;与至少一个处理器通信连接的存储器90;以及与存储介质通信连接的通信组件92,所述通信组件92在处理器的控制下接收和发送数据;其中,存储器90存储有可被至少一个处理器91执行的指令,指令被至少一个处理器91执行以实现本公开实施例所述的流水线配置方法。
具体地,所述存储器90作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器91通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述流水线配置方法。
存储器90可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器90可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器90可选包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器90中,当被一个或者多个处理器91执行时,执行上述任意方法实施例中的流水线配置方法。
上述产品可执行本申请实施例所公开的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所公开的方法。
本公开还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种流水线配置方法,其特征在于,所述方法包括:
接收终端发送的流水线指令,所述流水线指令中包括待执行任务的至少一个属性信息;
确定算法集合和可用资源信息,所述可用资源信息包括可用的至少一个处理器信息和可用的内存信息;
根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源;
根据所述算法、各算法之间的连接关系以及对应的资源配置用于处理所述待执行任务的流水线。
2.根据权利要求1所述的方法,其特征在于,所述处理器信息中包括处理器类型和处理器数量,其中,所述处理器类型包括中央处理器和图形处理器。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源包括:
根据所述流水线指令中包括的属性信息,在所述算法集合中确定对应的算法以及所述各算法之间的连接关系;
根据所述可用资源信息分别为所述各算法分配对应的可用资源。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源包括:
根据所述流水线指令中包括的属性信息确定对应的处理器信息;
根据所述对应的处理器信息以及所述属性信息,确定用于处理待执行任务的算法和各算法之间的连接关系;
分别为所述各算法分配对应的内存。
5.根据权利要求4所述的方法,其特征在于,所述根据所述流水线指令中包括的属性信息确定对应的处理器信息包括:
根据流水线指令中包括的属性信息确定参考处理器类型;
响应于所述可用资源中包括参考处理器类型,确定所述参考处理器类型为所述算法对应的处理器类型。
6.一种流水线配置方法,其特征在于,所述方法包括:
确定待执行任务;
确定所述待执行任务的至少一个属性信息;
根据所述属性信息确定流水线指令;
向服务器发送所述流水线指令,以使所述服务器根据所述流水线指令配置用于处理所述待执行任务的流水线。
7.一种流水线配置的装置,其特征在于,所述装置包括:
指令确定模块,用于接收终端发送的流水线指令,所述流水线指令中包括待执行任务的至少一个属性信息;
资源确定模块,用于确定算法集合和可用资源信息,所述可用资源信息包括至少一个可用的处理器信息和可用的内存信息;
算法确定模块,用于根据所述流水线指令中包括的属性信息以及算法集合和可用资源信息确定用于处理待执行任务的算法、各算法之间的连接关系以及对应的资源;
流水线配置模块,用于根据所述算法、各算法之间的连接关系以及对应的资源配置用于处理所述待执行任务的流水线。
8.一种流水线配置的装置,其特征在于,所述装置包括:
任务确定模块,用于确定待执行任务;
属性确定模块,用于确定所述待执行任务的至少一个属性信息;
指令确定模块,用于根据所述属性信息确定流水线指令;
指令发送模块,用于向服务器发送所述流水线指令,以使所述服务器根据所述流水线指令配置用于处理所述待执行任务的流水线。
9.一种计算机可读存储介质,用于存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-6中任一项所述的方法。
CN201911158560.9A 2019-11-22 2019-11-22 流水线配置方法、装置、可读存储介质和电子设备 Pending CN112835625A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911158560.9A CN112835625A (zh) 2019-11-22 2019-11-22 流水线配置方法、装置、可读存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911158560.9A CN112835625A (zh) 2019-11-22 2019-11-22 流水线配置方法、装置、可读存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN112835625A true CN112835625A (zh) 2021-05-25

Family

ID=75921752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911158560.9A Pending CN112835625A (zh) 2019-11-22 2019-11-22 流水线配置方法、装置、可读存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN112835625A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835626A (zh) * 2019-11-22 2021-05-25 北京灵汐科技有限公司 流水线配置方法、装置、可读存储介质和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120060165A1 (en) * 2010-09-02 2012-03-08 International Business Machines Corporation Cloud pipeline
US20190303207A1 (en) * 2018-03-27 2019-10-03 Oracle Financial Services Software Limited Computerized control of execution pipelines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120060165A1 (en) * 2010-09-02 2012-03-08 International Business Machines Corporation Cloud pipeline
US20190303207A1 (en) * 2018-03-27 2019-10-03 Oracle Financial Services Software Limited Computerized control of execution pipelines

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835626A (zh) * 2019-11-22 2021-05-25 北京灵汐科技有限公司 流水线配置方法、装置、可读存储介质和电子设备

Similar Documents

Publication Publication Date Title
CN107516090B (zh) 一体化人脸识别方法和系统
CN106527892B (zh) 一种电子设备的截屏方法及系统
CN113159091A (zh) 数据处理方法、装置、电子设备及存储介质
US20210064919A1 (en) Method and apparatus for processing image
CN109754072B (zh) 网络离线模型的处理方法、人工智能处理装置及相关产品
CN112839223B (zh) 图像压缩方法、装置、存储介质及电子设备
CN112215171A (zh) 目标检测方法、装置、设备及计算机可读存储介质
CN112487871B (zh) 笔迹数据处理方法、装置及电子设备
CN111935663A (zh) 传感器数据流的处理方法、装置、介质及电子设备
CN108062401B (zh) 应用推荐方法、装置及存储介质
CN112835625A (zh) 流水线配置方法、装置、可读存储介质和电子设备
CN116456496B (zh) 资源调度的方法、存储介质及电子设备
CN112835626A (zh) 流水线配置方法、装置、可读存储介质和电子设备
CN114021016A (zh) 数据推荐方法、装置、设备和存储介质
CN114040189A (zh) 多媒体测试方法、装置、存储介质及电子设备
CN112969032A (zh) 光照模式识别方法、装置、计算机设备及存储介质
CN113792869B (zh) 基于神经网络芯片的视频处理方法、装置和电子设备
CN111901561B (zh) 监控系统中的视频数据处理方法、装置、系统及存储介质
CN110083357B (zh) 界面构建方法、装置、服务器及存储介质
CN113518217A (zh) 对象识别方法、装置、服务器及介质
CN112905792A (zh) 基于非文本场景的文本聚类方法、装置、设备及存储介质
CN107833259B (zh) 基于智能终端的动态漫画引擎处理方法及系统
CN112256369A (zh) 一种内容显示方法、装置、系统及存储介质
CN111400598A (zh) 信息推送方法、服务器、多端口转发器和存储介质
CN112308074A (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