CN113626097A - 一种新型接入多算法的方法及服务器 - Google Patents
一种新型接入多算法的方法及服务器 Download PDFInfo
- Publication number
- CN113626097A CN113626097A CN202110813439.6A CN202110813439A CN113626097A CN 113626097 A CN113626097 A CN 113626097A CN 202110813439 A CN202110813439 A CN 202110813439A CN 113626097 A CN113626097 A CN 113626097A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- service
- request
- algorithm service
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5027—Allocation 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/5038—Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及算法部署领域,公开了一种新型接入多算法的方法及服务器;其方法为,配置算法服务,编写配置文件,依据算法服务配置信息对算法服务进行配置;算法服务启动,通过监控进程对算法服务进行启动,监控进程依据算法服务的配置进行启动;算法服务申请连接,依据配置的算法服务,进行申请连接算法服务;算法调用,依据算法的输入,向算法服务提交算法请求,从而调用算法。本发明在带有GPU的算法服务器上,使用本算法服务的应用,使用的资源CPU/GPU拷贝带宽,显存使用更少,GPU的使用率更高,能接入的算法请求更多,进一步提升了服务器的使用效率。
Description
技术领域
本发明涉及算法部署领域,尤其涉及了基于常规算法以及深度学习算法在服务器上的部署的一种新型接入多算法的方法及服务器。
背景技术
随着深度学习这几年迅速的发展,计算机视觉、数据处理等方面的产品与日俱增,对应的算法服务器也需要支持同时运行多种算法及接入多路的前端设备。当前服务器管理算法的方式,存在以下问题:
若每一个用户应用都独立地接入算法后端,则每一个应用都会独立地申请算法资源。如果这些应用存在使用相同算法的参数时(例如深度学习算法的模型参数),便会产生资源的浪费;在系统层面上,无法对算法的优先级和资源的竞争进行控制,产生不合预期的结果。
目前开源的算法服务(如英伟达的Triton),无法实现单次请求进行不同算法的串行,产生不必要数据拷贝和同步;对于特定情况(如单算法多GPU多应用请求等),目前的开源服务没有提供特定的优化方案,资源没有完全调度起来,无法满足需求。
目前开源的算法服务,主要是提供深度学习算法模型后端的接入,对于非深度学习算法的接入支持不友好,对算法前处理和算法后处理的支持也无法满足需求。
专利名称为:一种任务请求执行方法和装置,申请号为:CN201710010737.5,申请日:2017-01-06,专利申请中公开了一种任务请求执行方法和装置,包括:根据接收到的任务请求确定一个或者多个请求内容;基于读取的配置文件,识别每个所述请求内容对应的算法服务;所述配置文件提供算法服务列表及每个算法服务对应的描述信息;调用每个所述请求内容对应的算法服务,并获得每个算法服务的执行结果;对一个或者多个所述执行结果进行聚合处理获得所述任务请求对应的请求结果。
专利名称为:一种算法服务处理方法和装置,申请号为:CN202011038677.6,申请日:2020-09-28,专利申请中公开了一种算法服务处理方法和装置,应用于开发者门户系统,开发者门户系统集成于城市门户系统,开发者门户系统包括算法平台,算法平台提供有针对机器学习算法模型的服务,所述方法包括:接收登录所述算法平台的服务使用用户提出的预测请求;获取所述服务使用用户指定的预测数据;根据所述预测请求调用相应的机器学习算法模型和所述预测数据,执行预测服务;将执行所述预测服务得到的预测结果发送给所述服务使用用户。
发明内容
本发明针对现有技术的问题,提供了针对常规算法以及深度学习算法在服务器上的部署,适用于安装LINUX操作系统的带单张GPU或多张GPU的服务器,系统级地利用设备的资源,包括CPU的内存、内存带宽,以及GPU的显存、算力和拷贝带宽的一种新型接入多算法的方法及服务器。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种新型接入多算法的方法,其包括至少一张GPU服务器,其方法包括,
配置算法服务,编写配置文件,依据算法服务配置信息对算法服务进行配置;
算法服务启动,通过监控进程对算法服务进行启动,监控进程依据算法服务的配置进行启动;
算法服务申请连接,依据配置的算法服务,进行申请连接算法服务;
算法调用,依据算法的输入,向算法服务提交算法请求,从而调用算法。
能够接入多种深度学习算法前向框架;如TensorRT、Ncnn;非深度学习算法,如矩阵乘法、随机森林等,并提供个性化的算法接入如检测算法后处理。
作为优选,还包括结束连接,通过向算法服务发送结束连接请求,结束连接,算法服务并对算法资源进行回收;
算法服务关闭,通过命令或控制台结束算法服务监控进程从而结束算法服务,同时监控进程回收算法服务中的算法资源。
作为优选,算法服务配置信息包括算法模型、算法优先级和算法资源个数。
作为优选,还包括算法服务申请连接包括,通过算法服务配置信息进行算法服务信息配置,并选择所需调用的算法和运行的设备环境;
算法服务依据算法用户的配置,加载算法;算法连接前,通过改变算法服务配置信息确定算法服务的算法。
作为优选,算法调用包括算法请求和多用户算法调用;
算法请求,依据算法的输入请求向算法服务提交算法请求,算法服务完成算法请求后,向用户返回结果;
多用户算法调用,多用户调用算法任务,算法服务依据算法优先级和算法资源,依次返回结果至用户。
作为优选,算法请求包括一次算法请求或多次算法请求;一次算法请求包括一次算法任务或多次算法任务。
作为优选,多用户调用算法任务包括多个用户调用一个算法任务或多个不同算法任务。
为了解决上述技术问题,本发明还提供了一种新型接入多算法的服务器,包括至少一张GPU服务器,通过一种新型接入多算法的方法实现的服务器包括主控进程模块、资源分配进程模块和监控进程模块;
主控进程模块用于读取配置文件信息和发送连接请求;
资源分配进程模块用于分配管理算法服务中共享内存和共享显存;
监控进程模块用于监控主控进程模块和资源分配进程模块的状态,并对算法资源进行回收和重启。
作为优选,还包括算法进程模块;算法进程模块用于调度GPU资源,启动算法并监听算法任务,依据主控进程模块读取的配置文件,并依据算法任务处理算法返回结果。
作为优选,还包括外部接口模块;外部接口模块用于外部调用算法服务的接口,算法服务的接口包括c接口、c++接口和python接口。
本发明由于采用了以上技术方案,具有显著的技术效果:
本算法服务可以接入多种深度学习算法前向框架(如TensorRT、Ncnn等)和非深度学习算法(如矩阵乘法、随机森林等),并提供个性化的算法接入(如检测算法后处理等)。
本算法服务可以处理连续生产线式的处理,单次请求可以进行多次算法运算,例如可以将算法1的输出作为算法2的输入,直至拿到应用需求的结果;这样避免了通信的时间消耗,和数据拷贝中的内存(或显存)拷贝带宽的消耗。
本算法服务可以根据用户使用的服务器配置和应用场景,设置应用与后端之间的数据通信方式为GPU传输、CPU传输或混合传输,突破服务器数据传输的瓶颈,提升服务器的性能。
本算法服务可以根据用户使用的服务器配置和应用场景,可以通过修改配置文件的方式,调配某个算法的优先级和算法运行的线程数。
本算法服务可以使用修改配置文件的方式添加新算法,该过程不需重新启动服务,故可以支持在线升级。
本算法服务不仅支持c/c++代码的调用方式,也支持了python脚本语言调用,也支持http的调用方式。本算法服务提供了其他脚本语言接入的通用接口,可供后续扩展。
本算法服务提供了实时的性能监控,提供了算法服务接入的算法种类,每个算法接入的个数,运行状态等,供用户实时查看。
本算法服务采取了多进程的管理策略,有一个监视进程管理各个进程的运行状态,在进程运行产生异常时,进行有效的资源回收和重启,满足服务24x7不间断的运行情况。
在带有GPU的算法服务器上,使用本算法服务会比不使用本算法服务的应用,使用的资源(CPU/GPU拷贝带宽,显存使用)更少,GPU的使用率更高,能接入的算法请求更多,提升服务器的使用效率。
附图说明
图1是本发明的流程图;
图2是本发明的实施例1流程图;
图3是本发明的系统结构图。
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
实施例1
一种新型接入多算法的方法,包括至少一张GPU服务器,方法包括,
配置算法服务,编写配置文件,依据算法服务配置信息对算法服务进行配置;
算法服务启动,通过监控进程对算法服务进行启动,监控进程依据算法服务的配置进行启动;
算法服务申请连接,依据配置的算法服务,进行申请连接算法服务;
算法调用,依据算法的输入,向算法服务提交算法请求,从而调用算法。
接入多种深度学习算法前向框架;如TensorRT、Ncnn;非深度学习算法,如矩阵乘法、随机森林等,并提供个性化的算法接入如检测算法后处理。
还包括结束连接,通过向算法服务发送结束连接请求,结束连接,算法服务并对算法资源进行回收;
算法服务关闭,通过命令或控制台结束算法服务监控进程从而结束算法服务,同时监控进程回收算法服务中的算法资源。
算法服务配置信息包括算法模型、算法优先级和算法资源个数。
算法服务申请连接包括,通过算法服务配置信息进行算法服务信息配置,并选择所需调用的算法和运行的设备环境;算法服务依据算法用户的配置,加载算法;算法连接前,通过改变算法服务配置信息确定算法服务的算法。
算法调用包括算法请求和多用户算法调用;
算法请求,依据算法的输入请求向算法服务提交算法请求,算法服务完成算法请求后,向用户返回结果;
多用户算法调用,多用户调用算法任务,算法服务依据算法优先级和算法资源,依次返回结果至用户。
算法请求包括一次算法请求或多次算法请求;一次算法请求包括一次算法任务或多次算法任务。
多用户调用算法任务包括多个用户调用一个算法任务或多个不同算法任务。
实施例2
在实施例1基础上,通过实施例1实现的新型接入多算法的方法实现一种新型接入多算法的服务器,包括至少一张GPU服务器,通过一种新型接入多算法的方法实现的服务器包括主控进程模块、资源分配进程模块和监控进程模块;主控进程模块用于读取配置文件信息和发送连接请求;资源分配进程模块用于分配管理算法服务中共享内存和共享显存;监控进程模块用于监控主控进程模块和资源分配进程模块的状态,并对算法资源进行回收和重启。
实施例3
在上述实施例基础上,本实施例还包括算法进程模块,算法进程模块用于调度GPU资源,启动算法并监听算法任务,依据主控进程模块读取的配置文件,并依据算法任务处理算法返回结果。
还包括外部接口模块,外部接口模块用于外部调用算法服务的接口,算法服务的接口包括c接口、c++接口和python接口。
实施例4
在上述实施例基础上,在带有NVIDIATeslaT4的算法服务器上,使用本算法服务和TensorRT深度学习网络前向框架,单张T4卡,可以支持34路人脸人体检测(25帧实时检测);6张T4卡,可以支持150路人脸人体检测(25帧实时检测)。
Claims (10)
1.一种新型接入多算法的方法,包括至少一张GPU服务器,其方法包括,
配置算法服务,编写配置文件,依据算法服务配置信息对算法服务进行配置;
算法服务启动,通过监控进程对算法服务进行启动,监控进程依据算法服务的配置进行启动;
算法服务申请连接,依据配置的算法服务,进行申请连接算法服务;
算法调用,依据算法的输入,向算法服务提交算法请求,从而调用算法。
2.根据权利要求1所述的一种新型接入多算法的方法,其特征在于,还包括结束连接,通过向算法服务发送结束连接请求,结束连接,算法服务并对算法资源进行回收;
算法服务关闭,通过命令或控制台结束算法服务监控进程从而结束算法服务,同时监控进程回收算法服务中的算法资源。
3.根据权利要求1所述的一种新型接入多算法的方法,其特征在于,算法服务配置信息包括算法模型、算法优先级和算法资源个数。
4.根据权利要求3所述的一种新型接入多算法的方法,其特征在于,还包括,算法服务申请连接包括,
通过算法服务配置信息进行算法服务信息配置,并选择所需调用的算法和运行的设备环境;
算法服务依据算法用户的配置,加载算法;
算法连接前,通过改变算法服务配置信息确定算法服务的算法。
5.根据权利要求1所述的一种新型接入多算法的方法,其特征在于,算法调用包括算法请求和多用户算法调用;
算法请求,依据算法的输入请求向算法服务提交算法请求,算法服务完成算法请求后,向用户返回结果;
多用户算法调用,多用户调用算法任务,算法服务依据算法优先级和算法资源,依次返回结果至用户。
6.根据权利要求5所述的一种新型接入多算法的方法,其特征在于,算法请求包括一次算法请求或多次算法请求;一次算法请求包括一次算法任务或多次算法任务。
7.根据权利要求5所述的一种新型接入多算法的方法,其特征在于,多用户调用算法任务包括多个用户调用一个算法任务或多个不同算法任务。
8.一种新型接入多算法的服务器,包括至少一张GPU服务器,其特征在于,通过权利要求1-7任一所述的一种新型接入多算法的方法实现的服务器,包括主控进程模块、资源分配进程模块和监控进程模块;
主控进程模块用于读取配置文件信息和发送连接请求;
资源分配进程模块用于分配管理算法服务中共享内存和共享显存;
监控进程模块用于监控主控进程模块和资源分配进程模块的状态,并对算法资源进行回收和重启。
9.根据权利要求8所述的一种新型接入多算法的服务器,其特征在于,还包括算法进程模块;
算法进程模块用于调度GPU资源,启动算法并监听算法任务,依据主控进程模块读取的配置文件,并依据算法任务处理算法返回结果。
10.根据权利要求8所述的一种新型接入多算法的服务器,其特征在于,还包括外部接口模块;
外部接口模块用于外部调用算法服务的接口,算法服务的接口包括c接口、c++接口和python接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813439.6A CN113626097A (zh) | 2021-07-19 | 2021-07-19 | 一种新型接入多算法的方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110813439.6A CN113626097A (zh) | 2021-07-19 | 2021-07-19 | 一种新型接入多算法的方法及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626097A true CN113626097A (zh) | 2021-11-09 |
Family
ID=78380159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110813439.6A Pending CN113626097A (zh) | 2021-07-19 | 2021-07-19 | 一种新型接入多算法的方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626097A (zh) |
-
2021
- 2021-07-19 CN CN202110813439.6A patent/CN113626097A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034396B (zh) | 用于处理分布式集群中的深度学习作业的方法和装置 | |
CN111258744A (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
CN109144710B (zh) | 资源调度方法、装置及计算机可读存储介质 | |
US9396028B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
CN108052384B (zh) | 一种任务处理方法、服务平台及电子设备 | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
CN113419846B (zh) | 资源配置方法和装置、电子设备及计算机可读存储介质 | |
CN112286688B (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
CN113946431B (zh) | 一种资源调度方法、系统、介质及计算设备 | |
CN112199196B (zh) | 一种资源配置方法、介质及服务端 | |
CN112445615A (zh) | 一种线程的调度系统、计算机设备和存储介质 | |
CN108170417B (zh) | 一种在mesos集群中集成高性能的作业调度框架的方法和装置 | |
CN112181613A (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
CN111679911A (zh) | 云环境中gpu卡的管理方法、装置、设备及介质 | |
CN115600676A (zh) | 深度学习模型推理方法、装置、设备及存储介质 | |
CN113204425B (zh) | 供进程管理内部线程的方法、装置、电子设备及存储介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN116795647A (zh) | 一种数据库异构资源管理与调度方法、装置、设备及介质 | |
CN110580195A (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN113626097A (zh) | 一种新型接入多算法的方法及服务器 | |
CN110221902A (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 |