CN111147603A - 一种推理服务网络化的方法及装置 - Google Patents
一种推理服务网络化的方法及装置 Download PDFInfo
- Publication number
- CN111147603A CN111147603A CN201911417233.0A CN201911417233A CN111147603A CN 111147603 A CN111147603 A CN 111147603A CN 201911417233 A CN201911417233 A CN 201911417233A CN 111147603 A CN111147603 A CN 111147603A
- Authority
- CN
- China
- Prior art keywords
- inference
- task
- reasoning
- computer
- sending
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Abstract
在现有的人工智能领域,推理用的推理装置通常是通过PCIe接口与计算机装置进行连接的。采用这种方式,计算机装置所连接的推理装置的数目会受到总线编号范围的限制,且推理装置的计算能力难以实现跨计算机装置的实时调度。本申请提供一种将推理服务网络化的方法和装置,将用于推理的推理装置通过网络与计算机装置进行连接,从而突破计算机装置的总线编号范围对可连接的推理装置数目的限制。且由于推理装置都通过网络连接起来,可以灵活地对推理装置提供的计算能力进行调度。
Description
技术领域
本发明涉及计算领域,特别涉及一种基于网络的推理服务的方法和装置。
背景技术
人工智能(artificial intelligence,AI),是指人制造出来的机器表现出来的智能,特别是通过普通计算机程序来呈现人类智能的技术。当前人工智能技术,通常包括训练和推理两个阶段。在训练阶段,通常需要通过大量的数据输入,或采取增强学习等非监督学习方法,训练处一个复杂的深度神经网络模型。推理的含义主要是利用训练好的网络模型,快速高效地从新的数据中推断得出各种结论。例如,视频监控设备可以运用人工智能技术,通过后台的深度神经网络模型,判断一张抓拍的人脸是否属于黑名单上的人员。推理环节计算量虽然相对于训练阶段会少很多,但是考虑到未来海量的数据请求以及当前深度神经网络模型大且运算复杂,推理过程仍然会是计算密集型和存储密集型。如果将推理阶段部署在资源有限的终端用户设备上,对终端设备的计算能力的压力较大。另外,大量高并发的推理需求会在一些应用场景上体现,因此,能够提供大量计算能力的云端推理场景在人工智能应用中需求将会更加明显,建立推理服务集群对于相关企业将会越发重要。
当前,用于人工智能的推理阶段的设备主要有图形处理器(Graphics ProcessingUnit,GPU)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)以及网络处理器(Neural-networkProcessing Unit,NPU)等。推理阶段所用到的硬件的性能好坏,既关系到用户体验,也关系到企业的服务成本。
发明内容
在现有的做法中,用于推理的处理器,例如GPU,是通过外围组件快速互联(peripheral component interconnect express,PCIe)接口与计算机装置连接的。这会导致处理器部署数量受计算机装置的PCIe扩展槽数量限制,并且处理器提供的计算资源无法根据实际需求跨计算机装置进行实时调度,调度灵活性差。为了解决上述问题,本申请提供一种基于网络的推理服务化方法,使处理器或者处理器所在模块具有网络能力,并将处理器所在推理装置作为网络设备通过交换机与计算机装置连接。
第一方面,本申请提供一种AI推理系统,该推理系统包括计算机装置和至少两个推理装置,该计算机装置通过以太网络与至少两个推理装置相连,其中,该计算机装置用于:接收客户端发送的推理任务;通过以太网络向至少两个推理装置中的第一推理装置发送推理任务,该推理任务携带待处理数据;第一推理装置用于:接收推理任务,执行该推理任务并得到推理任务的结果,将推理任务的结果通过以太网络发送给计算机装置,其中,该推理装置是印刷电路板(Print Circuit Board,PCB)。
通过上述做法,可以将推理装置通过以太网络与计算机装置进行连接,从而避免了每个计算机装置所能连接的推理装置的数量受到计算机装置的PCIe扩展槽的限制,并可以更容易地将推理装置提供的计算资源进行跨节点调度,从而可以提高整个推理系统的规模和灵活性。同时,采用PCB作为推理装置,可以极大的压缩推理装置所占用的体积,有利于将大量的推理装置集中起来构成阵列。
根据第一方面,在本申请一种可能的实现方式中,第一推理装置包括:网络接口卡,用于:接收推理任务,并将待处理数据发送到第一推理装置的存储器中;推理单元,用于:读取存储器中的待处理数据,处理该待处理数据,得到推理任务的结果,并将推理任务的结果发送给网络接口卡;网络接口卡还用于将推理任务的结果通过以太网络发送给计算机装置。
通过上述做法,可以利用推理装置中的网络接口卡接收客户端发送的推理任务以及将推理任务的结果通过以太网络发送给计算机装置,从而实现了通过以太网络进行计算机装置和推理装置之间的连接和数据传输。
根据第一方面,在本申请另一种可能的实现方式中,该计算机装置用于:通过预设的网络协议向第一推理装置发送推理任务,其中,网络协议包括传输控制协议、远程直接数据存取或者无限带宽。
根据第一方面,在本申请另一种可能的实现方式中,该计算机装置还用于:确定第一推理装置中的处理器的类型;根据第一推理装置中的处理器的类型对推理任务中的指令进行转换;将转换后的推理任务发送给第一推理装置。
通过上述做法,可以使AI推理系统支持具有不同类型处理器的推理装置,从而增强了AI推理系统的可扩展性。
根据第一方面,在本申请另一种可能的实现方式中,该第一推理装置还用于:监控第一推理装置的负载状况,向计算机装置发送该第一推理装置的负载状况;计算机装置还用于:根据第一推理装置的负载状况,确定第一推理模块用于处理该推理任务。
通过上述做法,可以使计算机装置在分配推理任务时,选择负载最低的第一推理装置来处理推理任务,从而实现AI推理系统的负载均衡,提高了AI推理系统的效率。
根据第一方面,在本申请另一种可能的实现方式中,该计算机装置还用于:接收客户端发送的推理任务之后,为推理任务创建第一队列和第二队列,其中,该第一队列用于存储待处理数据,该第二队列用于存储推理任务对应的处理后的数据。
通过上述做法,可以使计算机装置在接收到推理任务时,建立两个队列分别存储该推理任务对应的待处理数据以及处理后的数据,从而加强对推理任务对应的数据的管理,提供AI推理系统的稳定性。
第二方面,本申请提供一种推理装置,该推理装置是PCB,该推理装置通过以太网络与计算机装置连接,该推理装置包括:网络接口卡,用于:接收计算机装置通过以太网络发送的推理任务,该推理任务携带待处理数据;将待处理数据发送到推理装置的存储器中;处理单元,用于:读取存储器中的待处理数据;处理该待处理数据,得到推理任务的结果;将推理任务的结果发送给网络接口卡;该网络接口卡还用于,将推理任务的结果通过以太网络发送给计算机装置。
根据第二方面,在本申请一种可能的实现方式中,处理单元还用于:监控推理装置的负载情况,将推理装置的负载情况发送给网络接口卡;网络接口卡还用于:将推理装置的负载状况发送给计算机装置。
根据第二方面,在本申请一种可能的实现方式中,推理装置还包括:总线接口,用于将推理装置与机框相连,其中,推理装置通过机框获得供电。
第三方面,本申请提供一种AI推理网络化的方法,该方法由推理装置执行,该推理装置包括处理单元和网络接口卡,该推理装置为PCB,该推理装置通过以太网络与计算机装置连接,该方法包括:接收计算机装置通过以太网络发送的推理任务,其中,该推理任务携带待处理数据;处理待处理数据,得到推理任务的结果;将推理任务的结果通过网络接口卡发送给计算机装置。
根据第三方面,在本申请一种可能的实现方式中,在接收计算机装置通过以太网络发送的推理任务之前,该方法还包括:监控推理装置的负载状况,将推理装置的负载状况发送给计算机装置。
第四方面,本申请提供一种计算机装置,该计算机装置用于执行AI推理网络化的方法,该计算机装置通过以太网络与至少两个推理装置连接,该至少两个推理装置中的第一推理装置为印刷电路板,该计算机装置包括:接收模块,用于:接收客户端发送的推理任务,其中,该推理任务携带待处理数据;任务调度模块,用于:确定第一推理装置中的处理器的类型;根据所述处理器的类型对推理任务中的指令进行转换;网络连接模块,用于将转换后的推理任务发送给第一推理装置。
根据第四方面,在本申请一种可能的实现方式中,该任务调度模块用于:监控至少两个推理装置的负载状况;根据至少两个推理装置的负载状况,确定第一推理装置用于处理该推理任务,其中,该第一推理装置是至少两个推理装置中负载最低的推理装置。
根据第四方面,在本申请另一种可能的实现方式中,该计算机装置还包括:任务管理模块,用于在接收模块接收客户端发送的推理任务之后,为推理任务创建第一队列和第二队列,其中,该第一队列用于存储待处理数据,该第二队列用于存储推理任务对应的处理后的数据。
第五方面,本申请提供一种AI推理网络化的方法,该方法由计算机装置执行,该计算机装置通过以太网络与至少两个推理装置连接,该至少两个推理装置中的第一推理装置为印刷电路板,该方法包括:接收客户端发送的推理任务,该推理任务携带待处理数据;确定第一推理装置中的处理器的类型;根据处理器的类型对推理任务中的指令进行转换;将转换后的推理任务发送给第一推理装置。
根据第五方面,在本申请一种可能的实现方式中,该方法还包括:监控至少两个推理装置的负载情况;根据至少两个推理装置的负载情况,确定第一推理装置用于处理该推理任务,其中,第一推理装置是至少两个推理装置中负载最低的推理装置。
根据第五方面,在本申请另一种可能的实现方式中,该方法还包括:在接收客户端发送的推理任务之后,为推理任务创建第一队列和第二队列,其中,该第一队列用于存储待处理数据,该第二队列用于存储推理任务对应的处理后的数据。
附图说明
图1是现有技术中一种GPU的结构示意图。
图2是一种推理用的处理器在系统中的部署场景的示意图。
图3是本申请所提供的一种推理卡的结构示意图。
图4A是本申请所提供的一种推理节点的架构的示意图。
图4B是本申请所提供的另一种推理节点的架构的示意图。
图5是本申请所提供的一个实施例的流程示意图。
图6是本申请所提供的另一个实施例的流程示意图。
图7是本申请所提供的一种AI推理服务模块的示意图。
图8是本申请所提供的一种计算机装置的硬件架构示意图。
具体实施方式
人工智能在训练阶段和推理阶段都需要大量的计算,因此需要处理器提供足够的算力来支撑。在各种类型的处理器中,GPU更多地使用多核心和并行计算来处理数据,即可以通过核心堆砌的方式来增强算力,因此适合于作为实现人工智能技术的处理器。图1是现有技术中一种GPU的示意图。如图1所示,该GPU具有PCIe插槽,是通过该PCIe插槽与计算机装置中的PCIe接口进行连接的。
PCIe是计算机总线的一个重要分支,它沿用了现有的外设元件互连标准(Peripheral Component Interconnect,PCI)编程概念和信号标准,并建构了更加高速的串行通信系统标准。由于PCIe是基于现有的PCI系统,所以只需修改物理层而无须修改软件就可将现有PCI系统转换为PCIe。PCIe拥有更快的速率,并且PCIe设备能够支持热插拔以及热交换特性。由于PCIe所具有的一系列优势,PCIe在计算机系统中得到广泛应用。因此,图1中的GPU也设计为通过PCIe接口与计算机装置进行连接。
图2是一种推理用的处理器在系统中的部署场景的示意图。
图2所展示的是一种视频处理的网络系统。由于视频处理常常需要用到人脸识别等人工智能技术,因此本申请通过该视频处理网络系统对推理用的处理器的部署场景进行说明。需要指出的是,该示例仅仅是为了便于叙述,本申请并不对推理用的处理器所部署的场景进行限定。另外,为了便于叙述,下文将推理用的处理器称为推理卡。
如图2所示,视频处理网络系统包括客户端、摄像机、中心管理服务器(CentralManagement Server,CMS)、流媒体服务器、网络视频录像机(Network Video Recorder,NVR)、人脸及视频结构化服务器以及中心存储。其中,客户端向用户或者管理员提供操作界面,以查看视频处理网络系统中的数据以及对该数据进行操作。摄像机用于拍摄视频,从而为系统提供视频文件。图2中示出了两种摄像机,其中,抓拍摄像机是用于对进行人脸或者车辆等目标进行追踪、识别和智能放大等操作的高清监控摄像机,而枪形摄像机多用于光线不充足地区及夜间无法安装照明设备的地区,且仅需要监视目标的位置或移动等场景下。流媒体服务器和NVR用于对摄像机拍摄的数据进行处理,并将处理后的数据保存在中心存储中。CMS作为管理中心实现对其余设备的管理。人脸及视频结构化服务器用于为视频处理网络系统提供人脸识别等人工智能服务,该服务器可以从网络中的其他装置,例如从中心存储处获取视频数据,根据获取到的视频数据进行训练及推理。由于该网络系统中的人工智能技术主要应用在人脸及视频结构化服务器,因此,大部分用于推理的处理器也会相应地配置在该服务器上。
在图2中,虽然视频处理网络系统中的各个服务器等装置是通过网络进行连接的,但是在每个服务器中,推理卡是通过PCIe接口与服务器相连的。由于计算机装置通常会设置一个总线编号范围,该总线编号范围会限制连接到该计算机装置的硬件数量,且每个计算机装置中设置的PCIe接口也会受到限制,这些限制影响了推理卡的部署数量,从而影响整个系统的计算能力。另外,当推理卡通过PCIe接口与计算机装置相连时,推理卡所提供的计算资源无法根据需求跨计算机装置实现实时调度,从而影响系统对于各个计算机装置中推理卡的计算能力的调度。
图3是本申请所提供的一种推理卡的架构的示意图。
如图3所示,推理卡300是个印刷电路板,相对于单独的处理器来说,集成了更多的组件。这些组件集成在该印刷电路板上,并通过连接线350进行相互连接。推理卡300具体包括:
处理器310,用于当推理卡接收到推理任务时,将推理任务携带的待处理数据加载到内存320中,并调度AI核心330处理该推理任务;
内存320,用于加载处理推理任务所需的数据,其中,推理卡300中的内存可以是双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,DDR SPRAM)或者高带宽存储器(High Bandwidth Memory,HBM),本申请不对内存320的类型进行限定。
AI核心330,用于提供推理任务中所涉及的神经网络模型以及进行相应的运算。AI核心330进一步包括加载/存储单元(Load/Store Unit,LSU)、标量(Scalar)计算单元、向量(Vector)计算单元等模块,其中,标量计算单元使一种单指令流单数据流(Singleinstruction Single data,SISD)的处理器,该类型处理器在同一时间内只处理一条数据(通常为整数或浮点数);向量计算单元又称数组处理器,是可以实现直接操作一组数组或向量进行计算的处理器,加载/存储单元用于加载待处理的数据以及存储处理后的数据。
具体来说,当处理器310将推理任务携带的待处理数据加载到内存320中后,AI核心330中的LSU从内存320读取该待处理数据,从发送给向量计算单元和标量计算单元等处理器进行计算。当得出推理结果后,LSU再将该推理结果加载到内存中,由网络接口卡将推理结果发送给AI推理服务模块。
网络接口卡(Network Interface Card,NIC)340,用于为推理卡提供网络传输能力,从而使推理卡300通过网络与其他装置进行连接。在本申请中,网络接口卡340既可以是推理卡300中一个独立的组件,也可以被集成在处理器310,即由处理器310为推理卡300提供网络传输能力,本申请不对此进行限定。
其中,推理卡300与其他装置既可以通过有线的方式进行连接,例如,推理卡300可以提供网口,从而可以通过插入网线与其他装置进行连接;也可以通过无线的方式与其他装置进行连接,例如通过无线热点(Wi-Fi)或者蓝牙(Bluetooth)等技术与其他装置进行连接。
在本申请一种可能的实现方式中,推理卡300还包括总线接口,并可以通过该总线接口连接到机框中。每个机框可以与多个推理卡进行连接,并统一管理所连接的推理卡的供电和散热。推理卡所包括的总线接口可以是通用串行总线(Universal Serial Bus,USB)、集成电路总线(Inter-Integrated Circuit,I2C)、通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter,UART),本申请不对此进行限定。
图4A是本申请所提供的一种基于交换网络的推理节点的架构示意图。
如图4A所示,推理节点包括AI推理服务(AI Inference Service)模块、交换机以及若干个推理卡组成。其中,AI推理服务模块用于AI推理任务的调度和管理。具体来说,AI推理服务模块可以从客户端等其他装置处接收AI推理任务,并通过一定的调度方法将接收到的AI推理任务分配给某个或某几个推理卡,并且在推理卡完成AI推理任务后,接收推理卡得出的结果,并将结果返回给产生AI推理任务模块的装置。AI推理服务模块可以以软件的形式集成到推理节点中的计算机装置中;也可以以硬件的形式存在,即在推理节点中用专门的计算机装置来实现AI推理服务模块的功能,本申请不对AI推理服务模块的形态进行限定。
交换机一方面与AI推理服务模块连接,另一方面与若干个推理卡连接。由于图3所示的推理卡可以具有网口,因此,推理卡和交换机之间可以通过网线进行连接。通过这种连接方式,可以使所有推理服务均基于网络提供,同时可以使推理卡实现热插拔等功能。通过这种连接方法,可以突破计算机装置的总线编号范围对可连接的推理卡数目的限制,同时,由于将推理卡都以网络的方式连接起来,也便于进行推理卡的计算能力的调度。
进一步的,为了在硬件上加强对推理卡的管理,可以通过总线接口或者背板连接的方式将若干个推理卡插入到一个特定的机框里,统一向外提供AI推理服务,且机框可以统一为该机框所连接的推理卡提供供电和散热。采用这种做法,可以减少推理节点所占用的物理空间,并减少推理卡的管理成本。
图4B是本申请所提供的另一种基于网络的推理节点的架构示意图。
当推理节点所包含的推理卡较多时,如果想将这些推理卡都连接在同一个交换机上时,可能会出现交换机的接口、地址表等资源不够用的问题,并且过多的装置可能会拖慢交换机的转发速度。在这种情况下,可以在推理节点中设置多个交换机,每个交换机连接一定数量的推理卡,而这些交换机通过一个路由器进行互连,再将路由器与AI推理服务模块进行连接。通过这种方式,可以进一步提高计算机装置所能连接的推理卡的数目,从而进一步提高推理节点的扩展能力。
图5是本申请所提供的一个实施例的流程示意图。
如图5所示,该实施例由图4A和图4B中的AI推理服务模块执行。如上文所述,该AI推理服务模块既可以是计算机装置上的软件,也可以是专门执行该AI推理服务的计算机装置本身。该实施例包括以下步骤:
S510:接收客户端发送的推理任务。
AI推理服务模块的作用是管理所连接的推理卡,并将推理任务分配给所管理的推理卡。因此,当客户端有需要处理的推理任务时,先将该推理任务发送给AI推理服务模块进行调度。
S520:根据推理卡的负载状况,确定处理该推理任务的第一推理卡。
由于推理任务需要占用大量的计算资源,为了节省处理推理任务所需的时间,当AI推理服务模块接收到推理任务时,会根据当前所管理的推理卡的负载情况来确定处理该推理任务的推理卡,从而实现各个推理卡的负载均衡。
AI推理服务模块可以有多种方式实现各个推理卡的负载均衡。在一种可能的实现方式中,AI推理服务模块在每次分配推理任务时,记录分配该推理任务的时间、该推理任务预计的工作量以及所分配的推理卡等信息,当再次需要分配推理任务时,会根据之前分配推理任务时所记录的信息,确定当前空闲或者负载较低的推理卡作为处理该推理任务的推理卡。在本申请提供的另一种实现方式中,每个推理卡都可以监控该推理卡自身的负载状况。当AI推理模块接收到推理任务时,可以向各个推理卡发送请求,以查看各个推理卡的负载状况,并根据获取到的各个推理卡的负载状况选择处理该推理任务的推理卡。
S530:根据第一推理卡所包括的处理器的类型,对推理任务中的指令进行转换。
虽然GPU由于所具有的擅长并行计算的优点成为AI推理中最频繁使用的处理器,但是,在某些场景下,也会根据该场景的特点使用CPU或FPGA等类型的处理器。由于推理卡中的处理器可能是不同类型的,而不同类型的处理器所使用的是不同的指令集,例如,对于CPU来说,高级精简指令集机器(Advanced RISC Machine,ARM)类型的CPU和X86架构的CPU,所使用的是不同类型的指令集。因此需要根据确定处理推理任务的第一推理卡中所包括的处理器的类型,对推理任务中的指令进行转换。
S540:将转换后的推理任务通过网络发送给第一推理卡。
在本申请一种可能的实现方式中,由于AI推理服务模块需要同时管理大量推理任务,为了使各个推理任务涉及的数据不会相互影响,在接收到客户端发送的推理任务时,为该推理任务创建第一队列和第二队列,其中,第一队列用于存储该推理任务对应的待处理的数据,第二队列用于存储该推理任务对应的处理后的数据。
图6是本申请所提供的另一个实施例的流程示意图。
如图6所示,该实施例由图4A和图4B中的推理卡执行,具体包括以下步骤:
S610:监控推理卡的负载情况并发送给AI推理服务模块。
由于每个AI推理服务模块同时管理多个推理卡,因此,当有推理任务需要处理时,可以选择负载最轻的推理卡。为了使AI推理服务模块获取各个推理卡的负载状况,在本申请一种可能的实现方式中,可以由推理卡监控自身的负载状况,并将自身的负载状况发送给AI推理服务模块。
S620:接收AI推理服务模块通过网络发送的推理任务。
当AI推理服务模块选定推理卡用于处理推理任务后,将推理任务通过网络发送给该推理卡。推理卡包括网络接口卡,可以通过预设的网络协议接收AI推理服务模块发送的推理任务。
S630:处理该推理任务,得到推理任务的结果。
推理卡处理该推理任务以及推理任务携带的待处理数据,详细步骤请见上文对图3中推理卡各个组件的功能的介绍,此处不再赘述。
S640:将推理任务的结果通过网络发送给AI推理服务模块。
与步骤S620类似,当推理卡处理完推理任务后,使用网络接口卡将推理任务的结果通过网络发送给AI推理服务模块。
在数据中心或云端的场景中,虽然单次推理的计算量远远无法和训练相比,但是如果数据中心或者云端同时发起了大量的推理请求,例如有1000万人同时请求应用进行机器翻译服务,所需求的计算量总和足以对数据中心服务器或者云服务器产生巨大压力。而大量的计算量则需要使用推理卡组成计算阵列来处理。当采用本申请所提供的技术方案时,推理卡通过网络与服务器进行连接,既可以使服务器所连接的推理卡数量不受到总线编号的限制,可以利用较少的数据中心服务器或云服务器支撑足够多的推理卡,从而降低了系统运行的成本;也可以通过网络组网的方式灵活控制推理池的大小,便于根据需要增加或减少系统中运行的推理卡的数量。
图7是本申请所提供的一种AI推理服务模块700的架构的示意图。
AI推理服务模块700从客户端处接收推理任务,再将这些推理任务分发给推理卡进行处理。如图7所示,AI推理服务模块700可进一步包括:
接收模块710,用于接收客户端发送的推理任务。客户端可以通过各种网络协议发送推理任务,例如,超文本传输协议(HyperText Transfer Protocol,HTTP)、表现层状态转换(Representational State Transfer,REST)以及远程过程调用(Remote procedurecall,RPC)等。
任务管理模块720,用于对接收模块710接收的推理任务进行存储及处理。由于推理任务往往包含较多的数据,任务管理模块720需要先将这些数据存储起来。为了便于管理,任务管理模块720可以将每个任务包括的数据分别存储到相应的队列中。进一步的,任务管理模块720也可以为每个任务分配两个以上的队列,其中一个队列用于存储从客户端接收的该任务的数据,另一个队列用于存储从推理卡接收到的该任务对应的处理后的数据。对于数据量较大、需要较多计算资源来处理的任务,任务管理模块720还可以将该任务进行分割,从而在后续过程中将分割后的任务分别分配给多个推理卡。
任务调度模块730,用于根据一定的规则将任务分配给推理卡。其中,任务调度模块730对于任务的分配,既可以按各个推理卡的顺序在系统中的顺序依次分发任务,可以根据各个推理卡的负载,选择负载较轻的推理卡进行任务分发。由于推理卡可能是CPU、GPU、FPGA等不同类型的处理器,任务调度模块730还应具有转换功能,将分发至推理卡的任务根据推理卡类型的不同转换成对应类型的程序代码。
网络连接模块740,用于将任务调度模块730分配好的任务通过网络发送给相应的推理卡。AI推理服务模块可以通过不同的协议与推理卡进行连接,因此,网络连接模块740也需要支持各种网络连接协议,例如传输控制协议(Transmission Control Protocol,TCP)、无限带宽技术(InfiniBand,IB)、远程直接内存访问(remote direct memoryaccess,RDMA)。
由于AI推理服务模块可以是计算机装置中的软件或者是专门用于实现上述功能的计算机装置本身,因此,本申请也提供一种计算机装置,该计算机装置包括上述的接收模块、任务管理模块、任务调度模块以及网络连接模块。
图8为依据本申请的实施例提供的用于实现推理服务网络化的计算机装置800的结构示意图。本实施例中的计算机装置800可以是上述各实施例中的计算机装置的其中一种具体实现方式。
如图8所示,该计算机装置800包括处理器801,处理器801与存储器805连接。处理器801可以为现场可编程门阵列(英文全称:Field Programmable Gate Array,缩写:FPGA),或数字信号处理器(英文全称:Digital Signal Processor,缩写:DSP)等计算逻辑或以上任意计算逻辑的组合。处理器801也可以为单核处理器或多核处理器。
存储器805可以是随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable read only memory,EEPROM)、寄存器或者本领域熟知的任何其它形式的存储介质,存储器可以用于存储程序指令,该程序指令被处理器801执行时,处理器801执行上述实施例中的所述的方法。
连接线809用于在通信装置的各部件之间传递信息,连接线809可以使用有线的连接方式或采用无线的连接方式,本申请并不对此进行限定。连接线809还连接有网络接口804。该网络接口804用于与推理卡813通过网络进行连接,也可以与其他计算机装置或者辅助存储器进行连接。
网络接口804使用例如但不限于电缆或电绞线一类的连接装置,来实现与其他设备或网络811之间的通信,网络接口804还可以通过无线的形式与网络811互连。
本申请实施例的一些特征可以由处理器701执行存储器805中的程序指令或者软件代码来完成/支持。存储器805上在加载的软件组件可以从功能或者逻辑上进行概括,例如,图7所示的接收模块710、任务管理模块72、任务调度模块730和网络连接模块740。
在本申请的一个实施例中,当存储器805加载程序指令后,处理器801执行存储器中的上述功能/逻辑模块相关的事务。
此外,图8仅仅是一个计算机装置800的例子,计算机装置800可能包含相比于图8展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图8中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。例如,存储器和处理器可以在一个模块中实现,存储器中的指令可以是预先写入存储器的,也可以是后续处理器在执行的过程中加载的。
Claims (14)
1.一种人工智能AI推理系统,其特征在于,所述AI推理系统包括计算机装置和至少两个推理装置,所述计算机装置通过以太网络与所述至少两个推理装置连接,其中,
所述计算机装置用于:接收客户端发送的推理任务;
通过所述以太网络向所述至少两个推理装置中的第一推理装置发送所述推理任务,所述推理任务携带待处理数据;
所述第一推理装置用于:接收所述推理任务,执行所述推理任务得到所述推理任务的结果;并且将所述推理任务的结果通过所述以太网络发送给计算机装置;
其中,所述第一推理装置为印刷电路板PCB。
2.根据权利要求1所述的AI推理系统,其特征在于,所述第一推理装置包括:
网络接口卡,用于:接收所述推理任务,并将所述待处理数据发送到所述第一存储装置的存储器中;
处理单元,用于:读取所述存储器中的待处理数据;
处理所述待处理数据,得到所述推理任务的结果,将所述推理任务的结果发送给所述网络接口卡;
所述网络接口卡还用于:将所述推理任务的结果通过以太网络发送给所述计算机装置。
3.根据权利要求1或2所述的AI推理系统,其特征在于,
所述计算机装置用于:通过预设的网络协议向所述第一推理装置发送推理任务,其中,所述网络协议包括传输控制协议TCP、远程直接数据存取RDMA或无限带宽IB。
4.根据权利要求1-3任一项所述的AI推理系统,其特征在于,
所述计算机装置还用于:确定所述第一推理装置中的处理器的类型;
根据所述第一推理装置中的处理器的类型对所述推理任务中的指令进行转换;
将转换后的所述推理任务发送给所述第一推理装置。
5.根据权利要求1-4任一项所述的AI推理系统,其特征在于,
所述第一推理装置还用于:
监控所述第一推理装置的负载状况;
向所述计算机装置发送所述第一推理装置的负载状况;
所述计算机装置还用于:
根据所述第一推理装置的负载状况,确定所述第一推理模块用于处理所述推理任务。
6.根据权利要求1-5任一项所述的AI推理系统,其特征在于,
所述计算机装置还用于:在接收客户端发送的推理任务之后,为所述推理任务创建第一队列和第二队列,其中,所述第一队列用于存储所述待处理数据,所述第二队列用于存储所述推理任务对应的处理后的数据。
7.一种推理装置,其特征在于,所述推理装置是印刷电路板PCB,所述推理装置通过以太网络与计算机装置连接,所述推理装置包括:
网络接口卡,用于:接收计算机装置通过以太网络发送的推理任务,所述推理任务携带待处理数据;
将所述待处理数据发送到所述推理装置的存储器中;
处理单元,用于:读取所述存储器中的待处理数据;
处理所述待推理数据,得到所述推理任务的结果;
将所述推理任务的结果发送给所述网络接口卡;
所述网络接口卡还用于,将所述推理任务的结果通过以太网络发送给所述计算机装置。
8.根据权利要求7所述的推理装置,其特征在于,
所述处理单元还用于:
监控所述推理装置的负载情况;
将所述推理装置的负载情况发送给所述网络接口卡;
所述网络接口卡还用于:
将所述推理装置的负载状况发送给所述计算机装置。
9.根据权利要求7或8所述的推理装置,其特征在于,所述推理装置还包括:
总线接口,用于将所述推理装置与机框相连,其中,所述推理装置通过所述机框获取电能。
10.一种人工智能AI推理网络化的方法,其特征在于,所述方法由推理装置执行,所述推理装置包括处理单元和网络接口卡,所述推理装置为印刷电路板PCB,所述推理装置通过以太网络与计算机装置连接,所述方法包括:
接收所述计算机装置通过以太网络发送的推理任务,其中,所述推理任务携带待推理数据;
处理所述待处理数据,得到所述推理任务的结果;
将所述推理任务的结果通过所述网络接口卡发送给所述计算机装置。
11.根据权利要求10所述的方法,其特征在于,在所述接收所述计算机装置通过以太网络发送的推理任务之前,所述方法还包括:
监控所述推理装置的负载状况;
将所述推理装置的负载状况发送给所述计算机装置。
12.一种计算机装置,其特征在于,所述计算机装置用于执行人工智能AI推理网络化的方法,所述计算机装置通过以太网络与至少两个推理装置连接,所述至少两个推理装置中的第一推理装置为印刷电路板PCB,所述计算机装置包括:
接收模块,用于:接收客户端发送的推理任务,其中,所述推理任务携带待处理数据;
任务调度模块,用于:确定所述第一推理装置中的处理器的类型;
根据所述处理器的类型对所述推理任务中的指令进行转换;
网络连接模块,用于:将转换后的所述推理任务发送给所述第一推理装置。
13.根据权利要求12所述的计算机装置,其特征在于,所述任务调度模块还用于:
监控所述至少两个推理装置的负载状况;
根据所述至少两个推理装置的负载状况,确定所述第一推理装置用于处理所述推理任务,其中,所述第一推理装置是所述至少两个推理装置中负载最低的推理装置。
14.根据权利要求12或13所述的计算机装置,其特征在于,所述计算机装置还包括:
任务管理模块,用于:
在所述接收模块接收客户端发送的推理任务之后,为所述推理任务创建第一队列和第二队列,其中,所述第一队列用于存储所述待处理数据,所述第二队列用于存储所述推理任务对应的处理后的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/095540 WO2021063026A1 (zh) | 2019-09-30 | 2020-06-11 | 一种推理服务网络化的方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944366 | 2019-09-30 | ||
CN2019109443667 | 2019-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111147603A true CN111147603A (zh) | 2020-05-12 |
Family
ID=70522934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911417233.0A Pending CN111147603A (zh) | 2019-09-30 | 2019-12-31 | 一种推理服务网络化的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111147603A (zh) |
WO (1) | WO2021063026A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021063026A1 (zh) * | 2019-09-30 | 2021-04-08 | 华为技术有限公司 | 一种推理服务网络化的方法及装置 |
CN113487033A (zh) * | 2021-07-30 | 2021-10-08 | 上海壁仞智能科技有限公司 | 以图形处理器为执行核心的推理方法和装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345132C (zh) * | 2003-07-28 | 2007-10-24 | 华为技术有限公司 | 一种并行处理的方法及系统 |
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN106203622A (zh) * | 2016-07-14 | 2016-12-07 | 杭州华为数字技术有限公司 | 神经网络运算装置 |
CN106951926A (zh) * | 2017-03-29 | 2017-07-14 | 山东英特力数据技术有限公司 | 一种混合架构的深度学习系统方法及装置 |
CN107430573A (zh) * | 2015-03-30 | 2017-12-01 | 艾迪悌科技有限公司 | 用于高效网络分析和计算卡的方法和装置 |
CN107659437A (zh) * | 2017-09-15 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种整机柜计算资源池资源自动识别系统及方法 |
CN109471959A (zh) * | 2018-06-15 | 2019-03-15 | 中山大学 | 基于图推理模型的图像中人物社会关系辨识方法及系统 |
CN109739560A (zh) * | 2018-12-24 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种gpu卡集群配置控制系统及方法 |
CN109814997A (zh) * | 2019-01-18 | 2019-05-28 | 创新奇智(广州)科技有限公司 | 一种分布式自主均衡人工智能任务调度方法及系统 |
CN109840591A (zh) * | 2017-11-29 | 2019-06-04 | 华为技术有限公司 | 模型训练系统、方法和存储介质 |
CN109933429A (zh) * | 2019-03-05 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279445A (zh) * | 2012-09-26 | 2013-09-04 | 上海中科高等研究院 | 运算任务的计算方法及超算系统 |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
CN107135257A (zh) * | 2017-04-28 | 2017-09-05 | 东方网力科技股份有限公司 | 一种节点集群中任务分配的方法、节点和系统 |
CN107766148B (zh) * | 2017-08-31 | 2021-02-19 | 北京百度网讯科技有限公司 | 一种异构集群及任务处理方法和装置 |
CN108171117B (zh) * | 2017-12-05 | 2019-05-21 | 南京南瑞信息通信科技有限公司 | 基于多核异构并行计算的电力人工智能视觉分析系统 |
CN208013975U (zh) * | 2018-04-23 | 2018-10-26 | 苏州超集信息科技有限公司 | 在线智能能力平台的硬件设备 |
CN111147603A (zh) * | 2019-09-30 | 2020-05-12 | 华为技术有限公司 | 一种推理服务网络化的方法及装置 |
-
2019
- 2019-12-31 CN CN201911417233.0A patent/CN111147603A/zh active Pending
-
2020
- 2020-06-11 WO PCT/CN2020/095540 patent/WO2021063026A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345132C (zh) * | 2003-07-28 | 2007-10-24 | 华为技术有限公司 | 一种并行处理的方法及系统 |
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN107430573A (zh) * | 2015-03-30 | 2017-12-01 | 艾迪悌科技有限公司 | 用于高效网络分析和计算卡的方法和装置 |
CN106203622A (zh) * | 2016-07-14 | 2016-12-07 | 杭州华为数字技术有限公司 | 神经网络运算装置 |
CN106951926A (zh) * | 2017-03-29 | 2017-07-14 | 山东英特力数据技术有限公司 | 一种混合架构的深度学习系统方法及装置 |
CN107659437A (zh) * | 2017-09-15 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种整机柜计算资源池资源自动识别系统及方法 |
CN109840591A (zh) * | 2017-11-29 | 2019-06-04 | 华为技术有限公司 | 模型训练系统、方法和存储介质 |
CN109471959A (zh) * | 2018-06-15 | 2019-03-15 | 中山大学 | 基于图推理模型的图像中人物社会关系辨识方法及系统 |
CN109739560A (zh) * | 2018-12-24 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种gpu卡集群配置控制系统及方法 |
CN109814997A (zh) * | 2019-01-18 | 2019-05-28 | 创新奇智(广州)科技有限公司 | 一种分布式自主均衡人工智能任务调度方法及系统 |
CN109933429A (zh) * | 2019-03-05 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021063026A1 (zh) * | 2019-09-30 | 2021-04-08 | 华为技术有限公司 | 一种推理服务网络化的方法及装置 |
CN113487033A (zh) * | 2021-07-30 | 2021-10-08 | 上海壁仞智能科技有限公司 | 以图形处理器为执行核心的推理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021063026A1 (zh) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677469B (zh) | 定时任务执行方法及装置 | |
US8606908B2 (en) | Wake-up server | |
WO2021063026A1 (zh) | 一种推理服务网络化的方法及装置 | |
CN112132022B (zh) | 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质 | |
US11138504B2 (en) | Deployment of deep neural networks (DNN) in embedded devices by means of peer-to-peer routing between computational points | |
CN115297008B (zh) | 基于智算网络的协同训练方法、装置、终端及存储介质 | |
CN110138753B (zh) | 分布式消息服务系统、方法、设备及计算机可读存储介质 | |
CN111539281B (zh) | 分布式人脸识别方法及系统 | |
CN113326025A (zh) | 一种单一集群远程持续发布方法及装置 | |
CN112261125A (zh) | 集中单元的云化部署方法、装置及系统 | |
US10379918B2 (en) | System and method for MPI implementation in an embedded operating system | |
CN112817732B (zh) | 一种适应云边协同多数据中心场景下的流数据处理方法及系统 | |
CN109962941A (zh) | 通信方法、装置以及服务器 | |
US10877800B2 (en) | Method, apparatus and computer-readable medium for application scheduling | |
CN111309467B (zh) | 任务分发方法及装置、电子设备及存储介质 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
CN117076057B (zh) | 一种ai服务请求调度的方法、装置、设备及介质 | |
CN111240845A (zh) | 一种数据处理方法、装置和存储介质 | |
CN110855787A (zh) | 基于Consul实现OpenResty动态负载均衡的方法 | |
CN111090503B (zh) | 一种基于fpga芯片的高性价比云计算服务系统 | |
CN117041147B (zh) | 智能网卡设备、主机设备和方法及系统 | |
US20240069979A1 (en) | Container scheduling | |
US20230259400A1 (en) | Decentralized distributed computing environment | |
CN115964163A (zh) | 一种针对实时云渲染集群部署的方法 | |
CN117527786A (zh) | Ftp数据处理方法、装置、电子设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200512 |