WO2020078044A1 - 数据处理的方法、装置和计算设备 - Google Patents

数据处理的方法、装置和计算设备 Download PDF

Info

Publication number
WO2020078044A1
WO2020078044A1 PCT/CN2019/094203 CN2019094203W WO2020078044A1 WO 2020078044 A1 WO2020078044 A1 WO 2020078044A1 CN 2019094203 W CN2019094203 W CN 2019094203W WO 2020078044 A1 WO2020078044 A1 WO 2020078044A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
data
processed
processing
storage
Prior art date
Application number
PCT/CN2019/094203
Other languages
English (en)
French (fr)
Inventor
倪小珂
陈锦鹏
蓝昊
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP19873706.6A priority Critical patent/EP3855704A4/en
Publication of WO2020078044A1 publication Critical patent/WO2020078044A1/zh
Priority to US17/232,195 priority patent/US20210232437A1/en

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Definitions

  • the present application relates to the field of information technology, and more specifically, to a data processing method, apparatus, and computing device.
  • Heterogeneous server refers to that in addition to setting CPU in the same server, it can also include other heterogeneous resources.
  • heterogeneous resources include graphics processors (GPUs), field-programmable gate arrays (FPGAs), integrated circuits (application specific integrated circuits, ASICs), and neural network processing units (neural processing units). unit, NPU).
  • Heterogeneous servers are often used to assist ordinary servers or virtual machines running on ordinary servers for data processing.
  • Each heterogeneous resource is often monopolized by a common server or a virtual machine (VM).
  • VM virtual machine
  • For a heterogeneous resource it is often bound to a specific server or VM and only used To process the server or virtual machine's instructions.
  • Different types of applications run on virtual machines or servers.
  • During communication between virtual machines and heterogeneous resources, or between servers and heterogeneous resources large network traffic is generated, making virtual machines or servers and heterogeneous resources Communication between servers becomes a bottleneck, affecting the speed and efficiency of data processing between ordinary computing devices and heterogeneous computing devices.
  • the present application provides a data processing method, which can improve the communication performance between a server or a virtual machine and a heterogeneous server.
  • a data processing method including: a first computing device receives a first message sent by a second computing device, the first computing device is used to assist the second computing device in performing business processing, and the first computing device
  • the computing device in the heterogeneous resource pool communicates with the second computing device through the network.
  • the heterogeneous resource pool includes at least one first computing device.
  • the first packet includes a request for the first computing device to process data to be processed According to the instruction, the first computing device performs processing on the data to be processed according to the instruction, and sends a second message to the second computing device, where the second message includes the processing result of the data to be processed.
  • multiple second computing devices By forming multiple computing devices (for example, multiple first computing devices) into a heterogeneous resource pool, when multiple second computing devices simultaneously require heterogeneous resources to assist them in performing service requests, multiple second computing devices can be combined Requests are scattered among different computing devices in the heterogeneous resource pool, so that multiple first computing devices in the heterogeneous resource pool can assist multiple second computing devices to execute corresponding business requests, thereby separating the second computing device from the heterogeneous computing devices.
  • the network traffic generated during resource communication is dispersed between different computing devices in the heterogeneous resource pool, thereby improving the communication performance between the second computing device and the heterogeneous resources.
  • the first message sent by the second computing device received by the first computing device includes data to be processed, and the first computing device parses the received first message to obtain the data to be processed And process the data to be processed according to the instructions carried in the first message.
  • the second computing device may directly send the first packet carrying the data to be processed to the first computing device, reducing the first The communication delay between the computing device and the second computing device.
  • the second computing device is configured with the first storage resource in the storage device, the first computing device also has access rights to the first storage resource, and the second computing device may only send the first computing device Sending a first message carrying a first target address, where the first target address is used to indicate the storage address of the data to be processed in the first storage resource, where the first storage resource is the possessed access right configured for the second computing device Storage resources, the first computing device obtains the first target address from the first packet according to the received first packet, so as to obtain the data to be processed from the storage space corresponding to the first target address in the first storage resource .
  • the second computing device may store the data to be processed into the storage space corresponding to the first target address in the first storage resource, And carry the first target address in the first packet sent to the first computing device, so that the first computing device obtains the data to be processed from the storage space corresponding to the first target address in the first storage resource, and avoids the first calculation
  • the device directly sends the data to be processed, thereby improving the communication performance between the first computing device and the second computing device.
  • the first computing device may send a second packet to the second computing device, where the second packet includes the processing result of the data to be processed.
  • the first computing device may store the processing result of the data to be processed into a storage space corresponding to the second target address in the first storage resource, and Carry the second target address in the second packet and send it to the second computing device, and the second computing device obtains the second target address from the second packet according to the received second packet, so as to obtain the first storage resource
  • the processing result of the data to be processed is obtained in the storage space corresponding to the second target address in.
  • the first computing device may store the data to be processed to correspond to the second target address in the first storage resource
  • the storage space of the storage space, and the second packet sent to the second computing device carries the second target address, so that the second computing device obtains the processing of the data to be processed from the storage space corresponding to the second target address in the first storage resource
  • the first computing device when the data to be processed is video stream data, when the first computing device processes the video stream data, it first needs to decode the video stream data to obtain the video code The image data corresponding to the stream data, and then processing the image data corresponding to the video stream data according to the instructions carried in the first message to obtain the processing result of the data to be processed corresponding to the video stream data.
  • the processing result of the to-be-processed data returned by the first computing device to the computing device should also include decoding the video stream data Image data corresponding to the video stream data obtained afterwards.
  • the processing result of the data to be processed when the processing result of the data to be processed is directly sent from the first computing device to the second computing device, the processing result of the data to be processed may be used by the first computing device using remote data access (remote Direct memory access (RDMA) method is sent to the second computing device.
  • remote data access remote Direct memory access
  • the data to be processed when the data to be processed is directly sent from the second computing device to the first computing device, the data to be processed may be sent from the second computing device to the first computing device using RDMA.
  • the storage device configured with the first storage resource includes a file system storage device, a distributed file system storage device, a block storage device, or an object storage device.
  • the processing corresponding to the instruction includes artificial intelligence (AI) processing.
  • AI artificial intelligence
  • a data processing method including: a second computing device sends a first message to a first computing device, the first computing device is used to assist the second computing device in performing business processing, and the first computing device is The computing device in the heterogeneous resource pool communicates with the second computing device through the network.
  • the heterogeneous resource pool includes at least one first computing device, and the first packet includes a request for the first computing device to process data to be processed According to the instruction, the first computing device performs processing on the data to be processed according to the instruction, and sends a second packet to the second computing device, the second packet includes the processing result of the data to be processed, and the second computing device receives A second message sent by the first computing device, where the second message includes the processing result of the data to be processed.
  • multiple second computing devices By forming multiple computing devices (for example, multiple first computing devices) into a heterogeneous resource pool, when multiple second computing devices simultaneously require heterogeneous resources to assist them in performing business processing, multiple second computing devices can be combined Of requests for assistance in performing business requests are scattered among different computing devices in the heterogeneous resource pool, so that multiple first computing devices in the heterogeneous resource pool can assist multiple second computing devices to perform corresponding business processing, thereby reducing 2.
  • the network traffic generated when the computing device communicates with the heterogeneous resource is dispersed in different computing devices in the heterogeneous resource pool, and the communication performance between the second computing device and the heterogeneous resource is improved.
  • the first packet sent by the second computing device to the first computing device includes data to be processed, and the first computing device parses the received first packet to obtain the data to be processed. And process the data to be processed according to the instructions carried in the first message.
  • the second computing device may directly send the first packet carrying the data to be processed to the first computing device, thereby reducing the The communication delay between a computing device and a second computing device.
  • the second computing device is configured with the first storage resource in the storage device, the first computing device also has access rights to the first storage resource, and the second computing device carries in the first packet There is a first target address, the first target address is used to indicate the storage address of the data to be processed in the first storage resource, where the first storage resource is a storage resource with access rights configured for the second computing device, the first computing The device obtains the first target address from the first packet according to the received first packet, so as to obtain the data to be processed from the storage space corresponding to the first target address in the first storage resource.
  • the second computing device may store the data to be processed into the storage space corresponding to the first target address in the first storage resource, And carry the first target address in the first packet sent to the first computing device, so that the first computing device obtains the data to be processed from the storage space corresponding to the first target address in the first storage resource, and avoids the first calculation
  • the device directly sends the data to be processed, thereby improving the communication performance between the first computing device and the second computing device.
  • the second packet sent by the first computing device received by the second computing device includes the processing result of the data to be processed.
  • the first computing device may directly send the second report carrying the processing result of the data to be processed to the second computing device In order to reduce the communication delay between the first computing device and the second computing device.
  • the first computing device may store the processing result of the data to be processed into a storage space corresponding to the second target address in the first storage resource, and Carry the second target address in the second packet and send it to the second computing device, and the second computing device obtains the second target address from the second packet according to the received second packet, so as to obtain the first storage resource
  • the processing result of the data to be processed is obtained in the storage space corresponding to the second target address in.
  • the first computing device may store the data to be processed to the second target address corresponding to the first storage resource Storage space, and carrying the second target address in the second message sent to the second computing device, so that the second computing device obtains the processing result of the data to be processed from the storage space corresponding to the second target address in the first storage resource To avoid sending the processing result of the data to be processed directly to the second computing device, thereby improving the communication performance between the first computing device and the second computing device.
  • the first computing device when the data to be processed is video stream data, when the first computing device processes the video stream data, it first needs to decode the video stream data to obtain the video code The image data corresponding to the stream data, and then processing the image data corresponding to the video stream data according to the instructions carried in the first message to obtain the processing result of the data to be processed corresponding to the video stream data.
  • the processing result of the to-be-processed data returned by the first computing device to the computing device should also include decoding the video stream data Image data corresponding to the video stream data obtained afterwards.
  • the processing result of the data to be processed when the processing result of the data to be processed is directly sent from the first computing device to the second computing device, the processing result of the data to be processed may be used by the first computing device using remote data access (remote Direct memory access (RDMA) method is sent to the second computing device.
  • remote data access remote Direct memory access
  • the data to be processed when the data to be processed is directly sent from the second computing device to the first computing device, the data to be processed may be sent from the second computing device to the first computing device using RDMA.
  • the storage device configured with the first storage resource includes a file system storage device, a distributed file system storage device, a block storage device, or an object storage device.
  • the processing corresponding to the instruction includes artificial intelligence AI processing.
  • an apparatus for data processing is provided, and the apparatus is configured to execute the method in the first aspect or any possible implementation manner of the first aspect.
  • the apparatus may include a unit for performing the method of data processing in the first aspect or any possible implementation manner of the first aspect.
  • a device for data processing which is used to execute the method in the second aspect or any possible implementation manner of the second aspect.
  • the apparatus may include a unit for performing the method of data processing in the second aspect or any possible implementation manner of the second aspect.
  • a computing device includes a memory, a heterogeneous resource, and a processor.
  • the memory is used to store a program
  • the processor is used to execute the program stored in the memory
  • the heterogeneous resource is scheduled to execute the data processing method in the first aspect or any possible implementation manner of the first aspect.
  • a computing device includes a memory and a processor.
  • the memory is used to store instructions; the processor executes the instructions stored in the memory, so that the device executes the data processing method in the second aspect or any possible implementation manner of the second aspect.
  • a computer-readable storage medium in which instructions are stored in the computer-readable storage medium, and when the instructions run on a computer, the computer is caused to execute the first aspect or any possible implementation manner of the first aspect Data processing methods.
  • a computer-readable storage medium in which instructions are stored in the computer-readable storage medium, and when the instructions run on a computer, the computer is caused to perform the second aspect or any possible implementation manner of the second aspect Data processing methods.
  • a computer program product containing instructions which when executed on a computer causes the computer to perform the data processing method in the first aspect or any possible implementation manner of the first aspect.
  • a computer program product containing instructions that, when executed on a computer, cause the computer to perform the data processing method in the second aspect or any possible implementation manner of the second aspect.
  • a computer system includes a first computing device and a second computing device.
  • the first computing device is used to assist the second computing device in performing business processing.
  • the first computing device is in a heterogeneous resource pool Computing device, which communicates with the second computing device through the network, the heterogeneous resource pool includes at least one first computing device, the second computing device is configured with the first storage resource in the storage device, and the first computing device also has the first A storage resource access right, the first computing device is used to perform the method in the above first aspect or any possible implementation manner of the first aspect, and the second computing device is used to execute the above second aspect or any of the second aspect A possible implementation method.
  • FIG. 1 is a schematic structural diagram of a computer system 100 provided by this application.
  • FIG. 2 is a schematic structural diagram of another computer system 100 provided by the present application.
  • FIG. 3 is a schematic flowchart of a data processing method 200 provided by the present application.
  • FIG. 4 is a schematic structural diagram of a data processing apparatus 300 of this application.
  • FIG. 5 is a schematic structural diagram of a data processing apparatus 400 provided by the present application.
  • FIG. 6 is a schematic structural diagram of a computing device 500 provided by this application.
  • FIG. 1 is a schematic diagram of a computer system architecture provided by this application.
  • the computer system 100 includes at least one computing device 101, at least one computing device 102 and a storage device 103.
  • the computing device 101 and the computing device 102 communicate via a network.
  • the computing device 101 and the computing device 102 communicate with the storage device 103 through a network, respectively.
  • the storage device 103 includes a plurality of storage units.
  • the network includes Ethernet, optical fiber, wireless bandwidth (infiniband, IB), wireless and other device connection methods.
  • the computing device 101 is used to assist the computing device 102 to perform business processing.
  • the computing device 102 may be a server, and a central processing unit (CPU) 1021 may be configured on the server.
  • the specific implementation of the computing device 101 may also be a server, in addition to a CPU, at least one of a graphics processor GPU, a field programmable gate array FPGA, an integrated circuit ASIC, or a neural network processing unit NPU.
  • a server configured with a CPU and at least one of GPU, FPGA, ASIC, or NPU in the same server is called a heterogeneous server, and multiple heterogeneous servers together constitute a heterogeneous resource pool.
  • the GPU, FPGA, ASIC, or NPU in the server is used to assist the CPU 1011 in the computing device 102 to perform business processing.
  • the following description of the present application uses a heterogeneous server including a GPU in the computing device 101 as an example.
  • the computing device 101 can configure the binding relationship between the computing device 101 and the computing device 102 when assisting the computing device 102 to perform business processing. That is to say, in the heterogeneous resource pool, one or more computing devices 101 may be selected for processing and executing the business of the designated computing device 102. For the same computing device 101, the multiple GPUs included in the same computing device 101 may only be used to process services of the same computing device 102, or may process services of multiple computing devices 102, which is not limited in this application.
  • the computing device 101 and a certain computing device 102 establish a binding relationship, the computing device 101 has an access right to a storage unit that the computing device 102 bound to can access. For example, when a computing device 101 establishes a binding relationship with a computing device 102, the computing device 101 has access rights to storage units that the computing device 102 can access.
  • the computing device 102 will be allocated heterogeneous resources in the heterogeneous resource pool.
  • the computing device 102 sends an initialization message to a computing device 101 in a heterogeneous resource pool, and the computing device 101 is responsible for managing heterogeneous resources in the heterogeneous resource pool (hereinafter referred to as "management computing device"),
  • the initialization message is used to request the management computing device to allocate heterogeneous resources to the computing device 102.
  • the initialization message may carry the number of GPUs that the computing device 102 requests to allocate to it.
  • the management computing device determines that the computing device 102 is allocated the GPU that meets the number in the heterogeneous resource pool, and establishes a container on the computing device 101 for the GPU assigned to the computing device 102, and feeds back the container identifier Give the computing device 102. So far, the computing device 102 has established a binding relationship with the heterogeneous resources allocated to it.
  • the identifier of the container may be the ID of the container or the IP address of the container.
  • the storage device 103 After the allocation of heterogeneous resources is completed, the storage device 103 also needs to create the same access rights as the computing device 102 for the containers corresponding to the heterogeneous resources. After the access rights are configured, the heterogeneous resources allocated to the computing device 102 are bound to The access authority of a storage unit that can be accessed by a given computing device 102.
  • any computing device 101 in a heterogeneous resource pool can be used as the above-mentioned management computing device.
  • computing device 102 requests to allocate heterogeneous resources to it, it can send an initialization message to any one of the heterogeneous resource pools
  • the computing device 101 ie, the management computing device
  • the computing device 101 is used by the management computing device to allocate heterogeneous resources to the computing device 102.
  • the above-mentioned management method of the heterogeneous resource pool does not constitute a limitation on the technical solution of the present application.
  • the heterogeneous resource pool can also be managed in other ways,
  • the computing device in the non-heterogeneous resource pool manages the computing device in the heterogeneous resource pool.
  • FIG. 2 is a schematic diagram of another computer system architecture provided by an embodiment of the present application.
  • the computing device 102 may also run one or more virtual machines (virtual machines (VM)) on the CPU 1011, where multiple VMs may run on one CPU 1021, or the multiple VMs may be distributed in multiple CPU1021.
  • VM virtual machines
  • the computing device 101 can configure the binding relationship between the VM and the computing device 101 when assisting the computing device 102 to perform business processing. That is to say, in the heterogeneous resource pool, one or more computing devices 101 may be selected for processing and executing VM services. For the same computing device 101, multiple GPUs included in the same computing device 101 may only be used to process services of the same VM, or may process services of multiple VMs, which is not limited in this application.
  • the computing device 101 establishes a binding relationship with a certain VM, the computing device 101 has access rights to storage units that the VM bound to it can access. For example, when VM1 establishes a binding relationship with a computing device 101, the computing device 101 has access rights to the storage unit of VM1.
  • the computing device 101 assists the VM in the computing device 102 to perform business processing, it is also necessary to allocate heterogeneous resources to the VM in the heterogeneous resource pool, and to create and create The VM should have the same access rights.
  • the storage device 103 in this application includes a file system storage device, a distributed file storage device, a block storage device, or an object storage device.
  • the computing device 102 may be configured with at least one of GPU, FPGA, ASIC, or NPU (not shown in FIGS. 1 and 2).
  • the GPU resources of the heterogeneous resource pool may also come from the computing device 101.
  • One or more VMs may also be running in the CPU 1021 in the computing device 101. This application does not specifically limit this.
  • FIG. 3 is a schematic flowchart of a data processing method provided by this application.
  • this application uses computing device 101 in FIG. 2 as the first computing device, computing device 102 as the second computing device, a virtual machine running on computing device 102, and computing device 101 assisting the virtual machine to perform business processing as an example to introduce this Apply the data processing method provided.
  • the method 200 includes:
  • the second computing device sends the first message to the first computing device.
  • the computing device 102 when the second computing device (for example, the computing device 102 or the virtual machine running in the computing device 102) needs the first computing device (for example, the computing device 101) in the heterogeneous resource pool to assist in performing business processing, the computing device 102 sends a packet (for example, a first packet) requesting assistance in performing business processing to the computing device 101 that has a binding relationship therewith, and the first packet includes an instruction for requesting the computing device 102 to process the processing to be processed.
  • a packet for example, a first packet
  • the VM when a certain VM running in the computing device 102 needs the computing device 101 in the heterogeneous resource pool to assist it in performing business processing, the VM will compute to the GPU in the heterogeneous resource pool that has a binding relationship with it.
  • the device 101 sends the first message, and the CPU 1011 in the computing device 101 will receive the first message and forward the first message to the GPU 1012 in the computing device 101 that has a binding relationship with the VM.
  • the instructions carried in the text execute the processing of the data to be processed.
  • the first computing device receives the first packet sent by the second computing device.
  • the first computing device performs processing of the data to be processed according to the instruction.
  • the GPU 1012 in the computing device 101 processes the data to be processed according to the instruction carried in the received first packet.
  • the computing device 102 may determine the method of transmitting the data to be processed to the computing device 101 according to the type of data to be processed; or, the computing device 102 may also determine to transmit the data to be processed to the computing device 101 according to the amount of data to be processed The way.
  • the computing device 101 can also obtain the data to be processed transmitted by the computing device 102 in a similar manner. The manner in which the computing device 101 acquires data to be processed is described below.
  • Method 1 The first message sent by the computing device 102 to the computing device 101 includes data to be processed, and the computing device 101 parses the received first message to obtain the data to be processed, and according to the instructions carried in the first message , To process the data to be processed.
  • the CPU 1021 in the computing device 102 carries the data to be processed in the first message according to the type of data to be processed (for example, the data to be processed is a video stream), and sends the data carrying the data to be processed to the CPU 1011 in the computing device 101 CPU1011 sends the first packet to GPU1012.
  • the CPU 1011 in the computing device 101 receives the first packet sent by the CPU 1021 in the computing device 102, and the CPU 1011 sends the first packet to the GPU 1012, and the GPU 1012 parses the first packet to obtain data to be processed.
  • the second computing device may directly send the first packet carrying the data to be processed to the first computing device, thereby reducing the The communication delay between a computing device and a second computing device.
  • the computing device 102 carries a first target address in the first message.
  • the first target address is used to indicate the storage address of the data to be processed in the first storage resource, where the first storage resource is the computing device 102 in The storage resource with the access right in the storage device 103, and the computing device 101 obtains the first target address from the first packet according to the received first packet, thereby storing from the storage corresponding to the first target address in the first storage resource Get the data to be processed in the space.
  • the CPU 1021 in the computing device 102 stores the data to be processed into the storage space corresponding to the first target address in the first storage resource according to the type of data to be processed (for example, the data to be processed is image data), and sends the data to the computing device
  • the CPU 1011 in 101 sends a first packet carrying the first target address.
  • the CPU 1011 in the computing device 101 receives the first packet, and the CPU 1011 sends the first packet to the GPU 1012.
  • the GPU 1012 obtains the first packet.
  • the computing device 102 may also determine the manner of transmitting the data to be processed according to the comparison result of the data amount of the data to be processed and a preset first threshold.
  • the CPU 1021 in the computing device 102 may also compare the data volume of the data to be processed with a preset first threshold, when the data volume of the data to be processed (for example, the data volume of the data to be processed is 1.3 Gbyte (megabits) ) Is greater than or equal to the preset first threshold (for example, the preset first threshold value is 1Gbyte), the CPU 1021 can transmit the data to be processed to the computing device 101 in the manner of the above method 2, correspondingly, calculate The GPU 1012 in the device 101 may obtain the data to be processed in the manner of the above method 2; or, when the data volume of the data to be processed (for example, the data volume of the data to be processed is 400Kbyte (kilobits)) is less than or equal to the preset When the first threshold value (for example, the preset first threshold value is 1 Gbyte), the CPU 1021 of the computing device 102 can transmit the data to be processed to the computing device 101 in the manner of the above method 1, and the computing device 101 can use the above method 2
  • the second computing device may store the data to be processed into the storage space corresponding to the first target address in the first storage resource, And carry the first target address in the first packet sent to the first computing device, so that the first computing device obtains the data to be processed from the storage space corresponding to the first target address in the first storage resource, and avoids the first calculation
  • the device directly sends the data to be processed, thereby improving the communication performance between the first computing device and the second computing device.
  • the GPU 1012 in the computing device 101 processes the data to be processed according to the instructions carried in the first packet.
  • the data to be processed is image data
  • the processing corresponding to the instructions carried in the first message is artificial intelligence (Artificial Intelligence) (AI) processing.
  • AI Artificial Intelligence
  • the AI processing specifically recognizes whether the animal in the image is a cat or a dog.
  • the result is that the animal in the image is a dog, and the GPU 1012 in the computing device 101 needs to return the processing result of the image data to the computing device 102 ( That is, the processing result of the data to be processed).
  • the value of the first threshold may also be adjusted according to the network bandwidth and / or the degree of network congestion between the computing device 101 and the computing device 102, for example, when the network communication quality is good, the first The value of the threshold is set to 500Kbyte.
  • the computing device 101 when the data to be processed is video stream data, when the computing device 101 processes the video stream data, it first needs to decode the video stream data to obtain an image corresponding to the video stream data Data, and then process the image data corresponding to the video stream data according to the instructions carried in the first message to obtain the processing result of the data to be processed corresponding to the video stream data.
  • the first computing device sends a second message to the second computing device.
  • the second computing device receives the second message sent by the second computing device.
  • the GPU 1012 in the computing device 101 After acquiring the processing result of the data to be processed, the GPU 1012 in the computing device 101 returns the processing result of the data to be processed to the computing device 102.
  • Manner 1 The computing device 101 sends a second message to the computing device 102, and the second message carries the processing result of the data to be processed.
  • the GPU 1012 in the computing device 101 carries the processing result of the data to be processed corresponding to the image data in the second message, and sends the second message to the CPU 1011 in the computing device 101 ,
  • the CPU 1011 sends the second message to the CPU 1021 in the computing device 102.
  • the first computing device may directly send the second report carrying the processing result of the data to be processed to the second computing device In order to reduce the communication delay between the first computing device and the second computing device.
  • Manner 2 The computing device 101 stores the processing result of the data to be processed in the storage space corresponding to the second target address in the first storage resource, and sends a second message carrying the second target address to the computing device 102.
  • the GPU 1012 in the computing device 101 stores the processing result of the data to be processed corresponding to the video stream data into the storage space corresponding to the second target address in the first storage resource , And send a second message carrying the second target address to the CPU 1011 in the computing device 101, the CPU 1011 sends the second message to the CPU 1021 in the computing device 102, so that the CPU 1021 in the computing device 102 according to the second target address Obtain the processing result of the data to be processed from the storage space corresponding to the second target address in the first storage resource.
  • the computing device 101 may also determine the manner of transmitting the processing result of the data to be processed according to the comparison result of the data amount of the processing result of the data to be processed and a preset second threshold.
  • the GPU 1012 in the computing device 101 may also compare the data volume of the processing result of the data to be processed with a preset second threshold.
  • the data volume of the processing result of the data to be processed for example, the processing result of the data to be processed When the amount of data is 0.6 Gbyte) or greater than or equal to the preset second threshold (for example, the preset second threshold is 0.4 Gbyte
  • the GPU 1012 in the computing device 101 may use the method 2 in step S205 above
  • the method returns the processing result of the data to be processed to the computing device 102; or, when the data amount of the processing result of the data to be processed (for example, the data amount of the processing result of the data to be processed 600Kbyte) is less than or equal to the preset first threshold ( For example, when the value of the preset second threshold value is 1 Gbyte), the GPU 1012 in the computing device 101 may return the processing result of the data to be processed to the computing device 102 in the method in manner 1 in step S205 described above.
  • the first computing device may store the data to be processed to the second target address corresponding to the first storage resource Storage space, and carrying the second target address in the second message sent to the second computing device, so that the second computing device obtains the processing result of the data to be processed from the storage space corresponding to the second target address in the first storage resource To avoid sending the processing result of the data to be processed directly to the second computing device, thereby improving the communication performance between the first computing device and the second computing device.
  • the second target address may also be indicated by the computing device 102 to the computing device 101.
  • the computing device 101 does not need to notify the computing device 102 of the second target address.
  • the processing result of the data to be processed returned by the computing device 101 to the computing device 102 should also include the correspondence between the video stream data obtained after decoding the video stream data Image data.
  • the processing result of the data to be processed can be used by the GPU 1022 in the computing device 101 to use remote direct data access (Remote Direct Memory Access,
  • the RDMA method is directly sent to the CPU 1011 in the computing device 101 without passing through the CPU 1011 in the computing device 101.
  • GPU 1022 may be a chip that supports RDMA function. At this time, GPU 1022 may directly store the processing result of the data to be processed to the memory of computing device 102. This application does not limit the specific process of GPU1022 transmitting data based on RDMA.
  • the data to be processed can be directly sent to the GPU 1012 in the computing device 101 by the CPU 1021 in the computing device 102 using the RDMA method without passing through the CPU 1011 in the computing device 101 .
  • the methods 1 and 2 in step S203, and the methods 1 and 2 in step S205 are only exemplary descriptions, and do not constitute any limitation on the application.
  • the above 4 methods can be Arbitrary combinations correspond to the following four combinations. In specific use, it can be selected in combination with the actual application scenario.
  • Scenario 1 When the data volume of the data to be processed is greater than or equal to the preset first threshold, and the processing result of the data to be processed is greater than or equal to the preset second threshold, the computing device 102 transmits the pending data to the computing device 101 according to method 2 After processing the data, the computing device 101 returns the processing result of the processing data to the computing device 102 according to the method 4 after obtaining the processing result of the data to be processed.
  • Scenario 2 When the data volume of the data to be processed is less than or equal to the preset first threshold, and the processing result of the data to be processed is greater than or equal to the preset second threshold, the computing device 102 transmits the data to the computing device 101 according to method 1 After processing the data, the computing device 101 returns the processing result of the processing data to the computing device 102 according to the method 4 after obtaining the processing result of the data to be processed.
  • Scenario 3 When the data amount of the data to be processed is greater than or equal to the preset first threshold, and the processing result of the data to be processed is less than or equal to the preset second threshold, the computing device 102 transmits the pending data to the computing device 101 according to method 2 After processing the data, the computing device 101 returns the processing result of the processing data to the computing device 102 according to method 3 after obtaining the processing result of the data to be processed.
  • Scenario 4 When the data volume of the data to be processed is less than or equal to the preset first threshold, and the processing result of the data to be processed is less than or equal to the preset second threshold, the computing device 102 transmits the pending data to the computing device 101 according to method 1 After processing the data, the computing device 101 returns the processing result of the processing data to the computing device 102 according to method 3 after obtaining the processing result of the data to be processed.
  • the data processing method provided in this application by forming multiple computing devices (for example, multiple first computing devices) into a heterogeneous resource pool, so that when multiple second computing devices need heterogeneous resources at the same time to assist them in performing business requests ,
  • the needs of multiple second computing devices to assist in the execution of business requests can be dispersed in a heterogeneous resource pool, that is, multiple first computing devices in the heterogeneous resource pool can assist multiple second computing devices to execute corresponding Service requests, thereby dispersing the network traffic generated when the second computing device communicates with the heterogeneous resource in the heterogeneous resource pool, thereby improving the communication performance between the second computing device and the heterogeneous resource.
  • FIG. 4 is a schematic block diagram of a data processing apparatus 300 provided by the present application.
  • the apparatus 300 includes a receiving unit 310, a processing unit 320, and a sending unit 330.
  • the receiving unit 310 is used to receive the first message sent by the second computing device, the data processing device communicates with the second computing device through the network, the device 300 is used to assist the second computing device to perform business processing, and the device 300 is A computing device in a heterogeneous resource pool, where the heterogeneous resource pool includes at least one data processing device, and the first packet includes an instruction for requesting the data processing device to process the data to be processed;
  • the processing unit 320 is configured to perform processing of the data to be processed according to the instruction
  • the sending unit 330 is configured to send a second message to the second computing device, where the second message includes the processing result of the data to be processed.
  • the first message includes data to be processed
  • the processing unit 320 is further configured to parse the first message to obtain the data to be processed; and process the data to be processed according to the instruction.
  • the second computing device is configured with a first storage resource
  • the data processing apparatus has access rights to the first storage resource
  • the first packet carries a first target address
  • the first target address is used to indicate the The storage address of the data to be processed in the first storage resource
  • the processing unit 320 is further used to obtain the data to be processed from the first storage resource according to the first target address; to the data to be processed according to the instruction The data is processed.
  • the processing unit 320 is further configured to: store the processing result of the data to be processed to a second target address, where the second target address is the storage address of the first storage resource, and the data processing device The second packet sent by the second computing device includes the second target address, so that the second computing device obtains the processing result of the data to be processed from the first storage resource according to the second target address.
  • the sending unit 330 is further configured to send the second message carrying the data of the processing result to the second computing device.
  • the data to be processed is transmitted by the second computing device to the data processing device using remote direct data access RDMA technology.
  • the processing result of the data to be processed is transmitted to the second computing device by the data processing device using RDMA technology.
  • the data to be processed is video stream data
  • the processing unit is further configured to: decode the video stream data to obtain image data corresponding to the video stream data; execute the video code according to the instruction
  • the processing of the image data corresponding to the stream data, and the processing result of the data to be processed includes the image data corresponding to the video code stream data.
  • the storage device configured with the first storage resource includes a file system storage device, a distributed file system storage device, a block storage device, or an object storage device.
  • the processing corresponding to the instruction includes artificial intelligence AI processing.
  • the apparatus 300 of the embodiment of the present application may be implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • the PLD may be a complex program logic device (complex programmable logical device, CPLD), field programmable gate array (field-programmable gate array, FPGA), general array logic (generic array logic, GAL) or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field programmable gate array
  • GAL general array logic
  • the device 300 and its various modules may also be software modules.
  • the apparatus 300 may correspond to performing the method described in the embodiment of the present application, and the above and other operations and / or functions of the various units in the apparatus 300 are executed in order to implement the first computing device in the method described in FIG. For the sake of brevity, I will not repeat them here.
  • FIG. 5 is a schematic block diagram of a data processing apparatus 400 provided by the present application.
  • the apparatus 400 includes a sending unit 410 and a receiving unit 420.
  • the sending unit 410 is configured to send a first message to a first computing device, where the first computing device communicates with the data processing device through a network, and the first computing device is used to assist the device 400 in performing business processing, and the first calculation
  • the device is a computing device in a heterogeneous resource pool.
  • the heterogeneous resource pool includes at least one first computing device, and the first packet includes an instruction for requesting the first computing device to process data to be processed.
  • the receiving unit 420 is configured to receive a second message sent by the first computing device, where the second message includes the processing result of the data to be processed.
  • the first message includes the data to be processed.
  • the data processing apparatus 400 is configured with a first storage resource, the first computing device has access rights to the first storage resource, the first packet carries a first target address, and the first target address It is used to indicate the storage address of the data to be processed in the first storage resource.
  • the second message includes the second target address
  • the data processing device obtains the processing result of the data to be processed from the first storage resource according to the second target address.
  • the receiving unit 420 is further configured to: receive the second message sent by the first computing device and carrying the data of the processing result.
  • the data to be processed is transmitted to the first computing device by the data processing apparatus using remote direct data access RDMA.
  • the processing result of the data to be processed is transmitted by the first computing device to the data processing device using RDMA.
  • the processing result of the data to be processed includes image data corresponding to the video stream data.
  • the storage device configured with the first storage resource includes a file system storage device, a distributed file system storage device, a block storage device, or an object storage device.
  • the processing corresponding to the instruction includes artificial intelligence AI processing.
  • the apparatus 400 of the embodiment of the present application may be implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), and the PLD may be a complex program logic device (complex programmable logical device, CPLD), field programmable gate array (field-programmable gate array, FPGA), general array logic (generic array logic, GAL) or any combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the PLD may be a complex program logic device (complex programmable logical device, CPLD), field programmable gate array (field-programmable gate array, FPGA), general array logic (generic array logic, GAL) or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field programmable gate array
  • GAL general array logic
  • the apparatus 400 may correspond to performing the method described in the embodiment of the present application, and the above and other operations and / or functions of the various units in the apparatus 400 are executed in order to implement the second computing device in the method shown in FIG. 3 For the sake of brevity, I will not repeat them here.
  • the computing device 500 includes a first processor 501, a second processor 502, a memory 503, a communication interface 504, and a bus 505.
  • the first processor 501, the second processor 502, the memory 503 and the communication interface 504 communicate through the bus 505, and may also communicate through other means such as wireless transmission.
  • the memory 503 is used to store instructions, and the first processor 501 is used to execute the instructions stored in the memory 503.
  • the memory 503 stores the program code 5031, and the first processor 501 can call the program code 5031 stored in the memory 702 to execute the data processing method described in FIG.
  • the first processor 501 may be a CPU, and the first processor 501 may also be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), and field programmable gate arrays ( FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGA field programmable gate arrays
  • a general-purpose processor may be a microprocessor or any conventional processor.
  • the second processor 502 includes at least one of GPU, FPGA, ASIC, or NPU.
  • the second processor is mainly used to perform a task of assisting another computing device to process.
  • the second processor may assist another computing device to process the video code stream.
  • the memory 503 may include a read-only memory and a random access memory, and provide instructions and data to the first processor 501.
  • the memory 503 may also include non-volatile random access memory.
  • the memory 503 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electronically Erase programmable EPROM (EEPROM) or flash memory.
  • Volatile memory can be random access memory (random access memory, RAM), which is used as an external cache.
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • Double data rate synchronous dynamic random access memory double data SDRAM, DDR SDRAM
  • enhanced SDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous connection dynamic random access memory
  • direct RAMbus direct RAMbus, DR, RAM
  • bus 505 may also include a power bus, a control bus, and a status signal bus. However, for clarity, various buses are marked as buses 505 in the figure.
  • the computing device 500 can correspond to the computing device 101 in the computing system shown in FIG. 1 or FIG. 2; when the computing device 500 corresponds to the computing device 102 in the computing system shown in FIG. 1 or 2, the second The processor 502 may be an optional component, and the computing device 102 may or may not include the second processor 502.
  • the computing device 500 may correspond to the data processing apparatus 300 or apparatus 400 in the present application, and may correspond to the first computing device or the second computing device in the method shown in FIG. 3 of the present application, and
  • the computing device 500 corresponds to the first computing device in the method shown in FIG. 3, the above and other operations and / or functions of the various modules in the computing device 500 are to implement the method performed by the first computing device in FIG. 3, respectively
  • Operation steps when the computing device 500 corresponds to the second computing device in the method shown in FIG. 3, the above and other operations and / or functions of the various modules in the computing device 500 are to implement the second computing in FIG. 3, respectively.
  • the operation steps of the method performed by the device will not be repeated here for the sake of brevity.
  • the present application also provides a computer system, which may be the computer system shown in FIG. 1 or FIG. 2, the computer system includes at least two computing devices, and one of the computing devices may be FIG.
  • the illustrated computing device 101 is used to perform the operation steps of the method performed by the first computing device in the above method 200.
  • the other computing device may be the computing device 102 shown in FIG. 1 or FIG.
  • the device is used to perform the operation steps of the method performed by the second computing device in the above method 200, and for the sake of brevity, no further description is provided here.
  • the above embodiments can be implemented in whole or in part by software, hardware, firmware, or any other combination.
  • the above-described embodiments may be fully or partially implemented in the form of computer program products.
  • the computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated.
  • the computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server or data center Transmit to another website, computer, server or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that contains one or more collections of available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium.
  • the semiconductor medium may be a solid state drive (SSD).
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the units is only a division of logical functions.
  • there may be other divisions for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.

Abstract

本申请提供了一种数据处理的方法,包括:第一计算设备接收第二计算设备发送的第一报文,第一计算设备用于协助第二计算设备执行业务处理,第一计算设备是异构资源池中的计算设备,其与第二计算设备通过网络进行通信,异构资源池中包括至少一个第一计算设备,第一报文包括用于请求第一计算设备对待处理数据进行处理的指令,第一计算设备根据该指令,执行对该待处理数据的处理,并向第二计算设备发送第二报文,第二报文包括该待处理数据的处理结果。该方法能够提高服务器或虚拟机与异构服务器之间的通信性能。

Description

数据处理的方法、装置和计算设备 技术领域
本申请涉及信息技术领域,并且更具体地,涉及数据处理的方法、装置和计算设备。
背景技术
随着服务器领域的发展,相较于仅设置中央处理器(central processing unit,CPU)的普通服务器外,出现一种异构服务器。异构服务器是指同一服务器内除设置CPU外,还可以包括其他异构资源。其中,异构资源包括图形处理器(graphics processing unit,GPU)、现场可编程门阵列(field-programmable gate array,FPGA)、集成电路(application specific integrated circuit,ASIC)与神经网络处理单元(neural processing unit,NPU)。
异构服务器往往用于辅助普通服务器或普通服务器上运行的虚拟机进行数据处理。每个异构资源往往是被一个普通服务器或者一个虚拟机(virtual machine,VM)独占,例如,对于某一个异构资源而言,其往往是与某个特定的服务器或VM绑定,仅用于处理该服务器或虚拟机的指令。虚拟机或服务器上运行不同类型的应用程序,在虚拟机和异构资源的通信过程中,或者服务器和异构资源的通信过程中,都会产生较大网络流量,使虚拟机或服务器与异构服务器之间通信成为瓶颈,影响普通计算设备与异构计算设备之间的数据处理速度和效率。
发明内容
本申请提供一种数据处理的方法,该方法能够提高服务器或虚拟机与异构服务器之间的通信性能。
第一方面,提供了一种数据处理的方法,包括:第一计算设备接收第二计算设备发送的第一报文,第一计算设备用于协助第二计算设备执行业务处理,第一计算设备是异构资源池中的计算设备,其与第二计算设备通过网络进行通信,异构资源池中包括至少一个第一计算设备第一报文包括用于请求第一计算设备对待处理数据进行处理的指令,第一计算设备根据该指令,执行对该待处理数据的处理,并向第二计算设备发送第二报文,第二报文包括该待处理数据的处理结果。
通过将多个计算设备(例如,多个第一计算设备)组成异构资源池,使得当多个第二计算设备同时需要异构资源协助其执行业务请求时,可以将多个第二计算设备的请求分散在异构资源池中不同计算设备,使得异构资源池中的多个第一计算设备能够分别协助多个第二计算设备执行相应的业务请求,从而将第二计算设备与异构资源通信时产生的网络流量分散在异构资源池中不同计算设备之间,进而提高第二计算设备与异构资源之间的通信性能。
在一种可能的实现方式中,第一计算设备接收的第二计算设备发送的第一报文中 包括待处理数据,第一计算设备对接收到的第一报文进行解析,获取待处理数据,并根据第一报文携带的指令,对待处理数据进行处理。
当待处理数据的传输不至于影响第一计算设备与第二计算设备之间的通信性能时,第二计算设备可以直接向第一计算设备发送携带有待处理数据的第一报文,降低第一计算设备与第二计算设备之间通信的时延。
在另一种可能的实现方式中,第二计算设备在存储设备中配置有第一存储资源,第一计算设备同样具有第一存储资源的访问权限,第二计算设备可以仅向第一计算设备发送携带有第一目标地址的第一报文,第一目标地址用于指示待处理数据在第一存储资源中的存储地址,其中,第一存储资源是为第二计算设备配置的拥有访问权限的存储资源,第一计算设备根据接收到的第一报文,从第一报文中获取第一目标地址,从而从第一存储资源中的第一目标地址对应的存储空间中获取待处理数据。
当待处理数据的传输过程会影响第一计算设备与第二计算设备之间的通信性能时,第二计算设备可以将待处理数据存储至第一存储资源中第一目标地址对应的存储空间,并在向第一计算设备发送的第一报文中携带第一目标地址,以使第一计算设备从第一存储资源中第一目标地址对应的存储空间获取待处理数据,避免向第一计算设备直接发送待处理数据,从而提高第一计算设备与第二计算设备之间的通信性能。
在另一种可能的实现方式中,第一计算设备在获得了待处理数据的处理结果后,可以向第二计算设备发送第二报文,第二报文中包括待处理数据的处理结果。
在另一种可能的实现方式中,第一计算设备在获得了待处理数据的处理结果后,可以将待处理数据的处理结果存储至第一存储资源中第二目标地址对应的存储空间,并将第二目标地址携带在第二报文中发送至第二计算设备,第二计算设备根据接收到的第二报文,从第二报文中获取第二目标地址,从而从第一存储资源中的第二目标地址对应的存储空间中获取待处理数据的处理结果。
当待处理数据的处理结果的传输过程可能会影响第一计算设备与第二计算设备之间的通信性能时,第一计算设备可以将待处理数据存储至第一存储资源中第二目标地址对应的存储空间,并在向第二计算设备发送的第二报文中携带第二目标地址,以使第二计算设备从第一存储资源中第二目标地址对应的存储空间获取待处理数据的处理结果,避免向第二计算设备直接发送待处理数据的处理结果,从而提高第一计算设备与第二计算设备之间的通信性能。
在另一种可能的实现方式中,当待处理数据为视频码流数据时,第一计算设备在对视频码流数据进行处理时,首先需要对该视频码流数据进行解码,获得该视频码流数据对应的图像数据,再根据第一报文携带的指令,对该视频码流数据对应的图像数据进行处理,得到视频码流数据对应的待处理数据的处理结果。
在另一种可能的实现方式中,当待处理数据为视频码流数据时,第一计算设备向计算设第二计算设备返回的待处理数据的处理结果中还应该包括对视频码流数据解码后获得的视频码流数据对应的图像数据。
在另一种可能的实现方式中,当待处理数据的处理结果由第一计算设备直接发送至第二计算设备时,待处理数据的处理结果可以由第一计算设备使用远程数据存取(remote direct memory access,RDMA)方式发送至第二计算设备。
在另一种可能的实现方式中,当待处理数据由第二计算设备直接发送至第一计算设备时,待处理数据可以由第二计算设备中使用RDMA方式发送至第一计算设备。
在另一种可能的实现方式中,配置有该第一存储资源的存储设备包括文件系统存储设备、分布式文件系统存储设备、块存储设备或对象存储设备。
在另一种可能的实现方式中,该指令对应的处理包括人工智能(artificial intelligence,AI)处理。
第二方面,提供了一种数据处理的方法,包括:第二计算设备向第一计算设备发送第一报文,第一计算设备用于协助第二计算设备执行业务处理,第一计算设备是异构资源池中的计算设备,其与第二计算设备通过网络进行通信,异构资源池中包括至少一个第一计算设备,第一报文包括用于请求第一计算设备对待处理数据进行处理的指令,第一计算设备根据该指令,执行对该待处理数据的处理,并向第二计算设备发送第二报文,第二报文包括该待处理数据的处理结果,第二计算设备接收第一计算设备发送的第二报文,第二报文包括该待处理数据的处理结果。
通过将多个计算设备(例如,多个第一计算设备)组成异构资源池,使得当多个第二计算设备同时需要异构资源协助其执行业务处理时,可以将多个第二计算设备的请求协助执行业务请求的需求分散在异构资源池中不同计算设备,使得异构资源池中的多个第一计算设备能够分别协助多个第二计算设备执行相应的业务处理,从而将第二计算设备与异构资源通信时产生的网络流量分散在异构资源池中不同计算设备,提高第二计算设备与异构资源之间的通信性能。
在一种可能的实现方式中,第二计算设备向第一计算设备发送的第一报文中包括待处理数据,第一计算设备对接收到的第一报文进行解析,获取待处理数据,并根据第一报文携带的指令,对待处理数据进行处理。
当待处理数据的传输不至于影响第一计算设备与第二计算设备之间的通信性能时,第二计算设备可以直接向第一计算设备发送携带有待处理数据的第一报文,从而降低第一计算设备与第二计算设备之间通信的时延。
在另一种可能的实现方式中,第二计算设备在存储设备中配置有第一存储资源,第一计算设备同样具有第一存储资源的访问权限,第二计算设备在第一报文中携带有第一目标地址,第一目标地址用于指示待处理数据在第一存储资源中的存储地址,其中,第一存储资源是为第二计算设备配置的拥有访问权限的存储资源,第一计算设备根据接收到的第一报文,从第一报文中获取第一目标地址,从而从第一存储资源中的第一目标地址对应的存储空间中获取待处理数据。
当待处理数据的传输可能会影响第一计算设备与第二计算设备之间的通信性能时,第二计算设备可以将待处理数据存储至第一存储资源中第一目标地址对应的存储空间,并在向第一计算设备发送的第一报文中携带第一目标地址,以使第一计算设备从第一存储资源中第一目标地址对应的存储空间获取待处理数据,避免向第一计算设备直接发送待处理数据,从而提高第一计算设备与第二计算设备之间的通信性能。
在另一种可能的实现方式中,第二计算设备接收到的第一计算设备发送的第二报文中包括待处理数据的处理结果。
当待处理数据的处理结果的传输不至于影响第一计算设备与第二计算设备之间的 通信性能时,第一计算设备可以直接向第二计算设备发送携带有待处理数据的处理结果第二报文,从而降低第一计算设备与第二计算设备之间通信的时延。
在另一种可能的实现方式中,第一计算设备在获得了待处理数据的处理结果后,可以将待处理数据的处理结果存储至第一存储资源中第二目标地址对应的存储空间,并将第二目标地址携带在第二报文中发送至第二计算设备,第二计算设备根据接收到的第二报文,从第二报文中获取第二目标地址,从而从第一存储资源中的第二目标地址对应的存储空间中获取待处理数据的处理结果。
当待处理数据的处理结果的传输可能会影响第一计算设备与第二计算设备之间的通信性能时,第一计算设备可以将待处理数据存储至第一存储资源中第二目标地址对应的存储空间,并在向第二计算设备发送的第二报文中携带第二目标地址,以使第二计算设备从第一存储资源中第二目标地址对应的存储空间获取待处理数据的处理结果,避免向第二计算设备直接发送待处理数据的处理结果,从而提高第一计算设备与第二计算设备之间的通信性能。
在另一种可能的实现方式中,当待处理数据为视频码流数据时,第一计算设备在对视频码流数据进行处理时,首先需要对该视频码流数据进行解码,获得该视频码流数据对应的图像数据,再根据第一报文携带的指令,对该视频码流数据对应的图像数据进行处理,得到视频码流数据对应的待处理数据的处理结果。
在另一种可能的实现方式中,当待处理数据为视频码流数据时,第一计算设备向计算设第二计算设备返回的待处理数据的处理结果中还应该包括对视频码流数据解码后获得的视频码流数据对应的图像数据。
在另一种可能的实现方式中,当待处理数据的处理结果由第一计算设备直接发送至第二计算设备时,待处理数据的处理结果可以由第一计算设备使用远程数据存取(remote direct memory access,RDMA)方式发送至第二计算设备。
在另一种可能的实现方式中,当待处理数据由第二计算设备直接发送至第一计算设备时,待处理数据可以由第二计算设备中使用RDMA方式发送至第一计算设备。
在另一种可能的实现方式中,配置有该第一存储资源的存储设备包括文件系统存储设备、分布式文件系统存储设备、块存储设备或对象存储设备。
在另一种可能的实现方式中,该指令对应的处理包括人工智能AI处理。
第三方面,提供一种数据处理的装置,该装置用于执行上述第一方面或第一方面的任一可能的实现方式中的方法。具体地,该装置可以包括用于执行第一方面或第一方面的任一可能的实现方式中数据处理的方法的单元。
第四方面,提供一种数据处理的装置,该装置用于执行上述第二方面或第二方面的任一可能的实现方式中的方法。具体地,该装置可以包括用于执行第二方面或第二方面的任一可能的实现方式中数据处理的方法的单元。
第五方面,提供一种计算设备,该设备包括存储器、异构资源与处理器。该存储器用于存储程序,该处理器,用于执行该存储器中存储的程序,调度该异构资源执行第一方面或第一方面的任一可能的实现方式中数据处理的方法。
第六方面,提供一种计算设备,该设备包括存储器和处理器。该存储器用于存储指令;该处理器执行该存储器存储的指令,使得该设备执行第二方面或第二方面的任 一可能的实现方式中数据处理的方法。
第七方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中数据处理的方法。
第八方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第二方面或第二方面的任一可能的实现方式中数据处理的方法。
第九方面,提供一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中数据处理的方法。
第十方面,提供一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行第二方面或第二方面的任一可能的实现方式中数据处理的方法。
第十一方面,提供一种计算机系统,该计算机系统包括第一计算设备与第二计算设备,第一计算设备用于协助第二计算设备执行业务处理,第一计算设备是异构资源池中的计算设备,其与第二计算设备通过网络进行通信,异构资源池中包括至少一个第一计算设备,第二计算设备在存储设备中配置有第一存储资源,第一计算设备同样具有第一存储资源的访问权限,第一计算设备用于执行上述第一方面或第一方面的任一可能的实现方式中的方法,第二计算设备用于执行上述第二方面或第二方面的任一可能的实现方式中的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请提供的一种计算机系统100的架构示意图。
图2是本申请提供的另一种计算机系统100的架构示意图。
图3是本申请提供的一种数据处理的方法200的流程图示意图。
图4为本申请的数据处理的装置300的结构示意图。
图5为本申请提供的一种数据处理的装置400的结构示意图。
图6为本申请提供的一种计算设备500的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1为本申请提供的一种计算机系统架构的示意图。如图1所示,计算机系统100包括至少一个计算设备101、至少一个计算设备102以及存储设备103。其中,计算设备101与计算设备102之间通过网络进行通信。计算设备101、计算设备102分别与存储设备103通过网络进行通信。存储设备103中包括多个存储单元。网络包括以太网、光纤、无线带宽(infiniband,IB)、无线等设备连接方式。
在本申请中,计算设备101用于协助计算设备102进行业务处理。计算设备102可以为服务器,该服务器上可以配置有中央处理器(central processing unit,CPU)1021。计算设备101具体实现时也可以为服务器,除了配置CPU外,还可以配置有图形处理 器GPU、现场可编程门阵列FPGA、集成电路ASIC或神经网络处理单元NPU中的至少一种。此时,同一服务器中即配置有CPU,又配置有GPU、FPGA、ASIC或NPU中的至少一种的服务器中称为异构服务器,多个异构服务器共同构成异构资源池。其中,服务器中的GPU、FPGA、ASIC或NPU用于协助计算设备102中CPU1011执行业务处理。
为便于描述,本申请的以下描述中以计算设备101中包括GPU的异构服务器为例进行描述。
计算设备101在协助计算设备102执行业务处理时,可以配置计算设备101和计算设备102之间的绑定关系。也就是说,在异构资源池中可以选择一个或多个计算设备101用于处理执行指定计算设备102的业务。其中,对于同一个计算设备101而言,其包括的多个GPU可以仅用于处理同一个计算设备102的业务,也可以处理多个计算设备102的业务,本申请不限定。当计算设备101和某一个计算设备102建立绑定关系时,该计算设备101具有与其绑定的计算设备102能够访问的存储单元的访问权限。例如,当一个计算设备101与一个计算设备102建立绑定关系时,该计算设备101具有该计算设备102能够访问的存储单元的访问权限。
具体地,在计算设备101协助计算设备102执行业务处理之前,会在异构资源池中为计算设备102分配异构资源。例如,计算设备102向异构资源池中的某一个计算设备101发送初始化报文,该计算设备101负责对异构资源池中的异构资源进行管理(以下简称为“管理计算设备”),初始化报文用于请求管理计算设备为计算设备102分配异构资源,初始化报文中可以携带有计算设备102请求为其分配的GPU的数量。
管理计算设备根据该初始化报文,在异构资源池中确定为计算设备102分配满足该数量的GPU,并在计算设备101上为分配给计算设备102的GPU建立容器,将该容器的标识反馈给计算设备102。至此,计算设备102便与为其分配的异构资源之间建立了绑定关系。其中,该容器的标识可以为容器的ID或容器的IP地址。
异构资源分配完成之后,还需要在存储设备103上为该异构资源对应的容器创建与计算设备102同等的访问权限,访问权限配置完成之后,分配给计算设备102的异构资源具有与其绑定的计算设备102能够访问的存储单元的访问权限。
需要说明的是,上述仅以异构资源池中仅存在一个管理计算设备为例进行说明,本申请并不限定于此。例如,异构资源池中的任意一个计算设备101均可以作为上述的管理计算设备,计算设备102在请求为其分配异构资源时,可以将初始化报文发送至异构资源池中的任意一个计算设备101(即,管理计算设备),由该管理计算设备为计算设备102分配异构资源。
还需要说明的是,上述的对异构资源池的管理方式并不构成对本申请技术方案的限定,除上述的管理方式外,异构资源池还可以采用其他方式进行管理,例如,由一台非异构资源池中计算设备对该异构资源池中计算设备进行管理。
图2为本申请实施例提供的另一种计算机系统架构的示意图。如图所示,计算设备102中还可以在CPU1011上运行一个或多个虚拟机(virtual machine,VM),其中,多个VM可以运行在一个CPU1021中,或者,该多个VM可以分布在多个CPU1021中。
计算设备101在协助计算设备102执行业务处理时,可以配置VM和计算设备101之间的绑定关系。也就是说,在异构资源池中可以选择一个或多个计算设备101用于处理执行VM的业务。其中,对于同一个计算设备101而言,其包括的多个GPU可以仅用于处理同一个VM的业务,也可以处理多个VM的业务,本申请不限定。当计算设备101和某一个VM建立绑定关系时,该计算设备101具有与其绑定的VM能够访问的存储单元的访问权限。例如,当VM1与一个计算设备101建立绑定关系时,该计算设备101具有VM1的存储单元的访问权限。
需要说明的是,当计算设备101协助计算设备102中的VM执行业务处理时,同样需要在异构资源池中为VM分配异构资源,并需要在存储设备103上为该异构资源创建与VM该同等的访问权限。
关于在异构资源池中为VM分配异构资源与在存储设备103上为分配给VM的异构资源创建与VM同等的访问权限的方法参照上述相关描述,为了简洁,此处不再赘述。
本申请中的存储设备103包括文件系统存储设备、分布式文件存储设备、块存储设备或对象存储设备。
作为一种可能的实施例,计算设备102除了配置CPU外,还可以配置有GPU、FPGA、ASIC或NPU中的至少一种(图1与图2中未示出)。此时,异构资源池的GPU资源也可以来自计算设备101。计算设备101中的CPU1021中还可以运行有一个或多个VM。本申请对此不作特别限定。
值得说明的是,图1和图2中每个计算设备102中CPU和VM的数量、每个CPU中包括的处理器核数,以及计算设备101中CPU和GPU的数量并不构成对本申请的限制。
下面以图2中所示的计算机系统为例,对本申请提供的数据处理的方法200进行说明。图3为本申请提供的一种数据处理的方法的流程示意图。为便于描述,本申请以图2中计算设备101为第一计算设备,计算设备102为第二计算设备,计算设备102上运行有虚拟机,计算设备101协助虚拟机执行业务处理为例介绍本申请提供的数据处理的方法。如图所示,方法200包括:
S201,第二计算设备向第一计算设备发送第一报文。
具体地,当第二计算设备(例如,计算设备102或计算设备102中运行的虚拟机)需要异构资源池中的第一计算设备(例如,计算设备101)协助执行业务处理时,计算设备102向与其存在绑定关系的计算设备101发送请求协助执行业务处理的报文(例如,第一报文),该第一报文中包括用于请求计算设备102对待处理处理进行处理的指令。
例如,当计算设备102中运行的某个VM需要异构资源池中的计算设备101协助其执行业务处理时,该VM便会向异构资源池中的与其存在绑定关系的GPU所在的计算设备101发送第一报文,计算设备101中的CPU1011会接收到第一报文,并将第一报文转发至计算设备101中与该VM存在绑定关系的GPU1012,由GPU1012根据第一报文中携带的指令,执行对待处理数据的处理。
S202,第一计算设备接收第二计算设备发送的第一报文。
S203,第一计算设备根据指令,执行对待处理数据的处理。
具体地,计算设备101中的GPU1012根据接收到的第一报文携带的指令,对待处理数据进行处理。
首先,对计算设备101获取待处理数据的方法进行介绍。其中,计算设备102可以根据待处理数据类型,确定向计算设备101传输待处理数据的方式;或者,计算设备102还可以根据待处理数据的数据量的大小,确定向计算设备101传输待处理数据的方式。相应地,计算设备101也可以以类似的方式获取计算设备102传输的待处理数据。下面对计算设备101获取待处理数据的方式进行说明。
方式1:计算设备102向计算设备101发送的第一报文中包括待处理数据,计算设备101对接收到的第一报文进行解析,获取待处理数据,并根据第一报文携带的指令,对待处理数据进行处理。
具体地,计算设备102中CPU1021根据待处理数据类型(例如,待处理数据为视频码流),将待处理数据携带在第一报文中,并向计算设备101中的CPU1011发送携带有待处理数据的第一报文,由CPU1011将第一报文发送至GPU1012。相应地,计算设备101中的CPU1011接收计算设备102中的CPU1021发送的第一报文,CPU1011将第一报文发送至GPU1012,GPU1012对第一报文进行解析,获取待处理数据。
当待处理数据的传输不至于影响第一计算设备与第二计算设备之间的通信性能时,第二计算设备可以直接向第一计算设备发送携带有待处理数据的第一报文,从而降低第一计算设备与第二计算设备之间通信的时延。
方式2:计算设备102在第一报文中携带有第一目标地址,第一目标地址用于指示待处理数据在第一存储资源中的存储地址,其中,第一存储资源为计算设备102在存储设备103中拥有访问权限的存储资源,计算设备101根据接收到的第一报文,从第一报文中获取第一目标地址,从而从第一存储资源中的第一目标地址对应的存储空间中获取待处理数据。
具体地,计算设备102中CPU1021根据待处理数据的类型(例如,待处理数据为图像数据),将待处理数据存储至第一存储资源中的第一目标地址对应的存储空间,并向计算设备101中的CPU1011发送携带有第一目标地址的第一报文,相应的,计算设备101中的CPU1011接收第一报文,CPU1011将第一报文发送至GPU1012,GPU1012获取第一报文中携带的第一目标地址,并在存储设备103中的第一目标地址所指示的存储空间中获取待处理数据。
可选地,计算设备102还可以根据待处理数据的数据量与预设的第一阈值的比较结果,确定传输待处理数据的方式。
例如,计算设备102中的CPU1021还可以将待处理数据的数据量与预设的第一阈值进行比较,当待处理数据的数据量(例如,待处理数据的数据量为1.3Gbyte(兆比特))大于或等于与预设的第一阈值(例如,预设的第一阈值的取值为1Gbyte)时,CPU1021可以以上述方式2中的方法向计算设备101传输待处理数据,相应的,计算设备101中的GPU1012可以以上述方式2中的方法获取待处理数据;或者,当待处理数据的数据量(例如,待处理数据的数据量为400Kbyte(千比特))小于或等于与预设 的第一阈值(例如,预设的第一阈值的取值为1Gbyte)时,计算设备102的CPU1021可以以上述方式1中的方法向计算设备101传输待处理数据,计算设备101可以以上述方式2中的方法获取待处理数据。
当待处理数据的传输可能会影响第一计算设备与第二计算设备之间的通信性能时,第二计算设备可以将待处理数据存储至第一存储资源中第一目标地址对应的存储空间,并在向第一计算设备发送的第一报文中携带第一目标地址,以使第一计算设备从第一存储资源中第一目标地址对应的存储空间获取待处理数据,避免向第一计算设备直接发送待处理数据,从而提高第一计算设备与第二计算设备之间的通信性能。
计算设备101中的GPU1012在获取到待处理数据后,根据第一报文携带的指令,对待处理数据进行处理。
例如,待处理数据为图像数据,第一报文中携带的指令所对应的处理为人工智能(Artificial Intelligence,AI)处理,该AI处理具体为识别图像当中的动物是猫或者狗。
具体地,计算设备101中的GPU1012在对该图像数据进行AI处理后,得到的结果为图像中的动物为狗,计算设备101中的GPU1012便需要向计算设备102返回该图像数据的处理结果(即,待处理数据的处理结果)。
需要说明的是,第一阈值的取值还可以随着计算设备101与计算设备102之间的网络带宽和/或网络拥塞程度进行调整,例如,当网络通信质量较好时,可以将第一阈值的取值设为500Kbyte。
还需要说明的是,当待处理数据为视频码流数据时,计算设备101在对视频码流数据进行处理时,首先需要对该视频码流数据进行解码,获得该视频码流数据对应的图像数据,再根据第一报文携带的指令,对该视频码流数据对应的图像数据进行处理,得到视频码流数据对应的待处理数据的处理结果。
S204,第一计算设备向第二计算设备发送第二报文。
S205,第二计算设备接收第二计算设备发送的第二报文。
具体地,计算设备101中的GPU1012在获取到待处理数据的处理结果后,便将待处理数据的处理结果返回至计算设备102。
下面对计算设备101向计算设备102返回待处理数据的处理结果的方法进行介绍。
方式1:计算设备101向计算设备102发送第二报文,第二报文中携带有待处理数据的处理结果。
具体地,当待处理数据为图像数据时,计算设备101中的GPU1012将图像数据对应的待处理数据的处理结果携带在第二报文中,并向计算设备101中的CPU1011发送第二报文,CPU1011将第二报文发送至计算设备102中的CPU1021。
当待处理数据的处理结果的传输不至于影响第一计算设备与第二计算设备之间的通信性能时,第一计算设备可以直接向第二计算设备发送携带有待处理数据的处理结果第二报文,从而降低第一计算设备与第二计算设备之间通信的时延。
方式2:计算设备101将待处理数据的处理结果存储至第一存储资源中的第二目标地址对应的存储空间中,并向计算设备102发送携带有第二目标地址的第二报文。
具体地,当待处理数据为视频码流数据时,计算设备101中的GPU1012将视频码流数据对应的待处理数据的处理结果存储至第一存储资源中的第二目标地址对应的存 储空间中,并向计算设备101中的CPU1011发送携带有第二目标地址的第二报文,CPU1011将第二报文发送至计算设备102中的CPU1021,以使计算设备102中的CPU1021根据第二目标地址,从第一存储资源中的第二目标地址对应的存储空间中获取待处理数据的处理结果。
可选地,计算设备101还可以根据待处理数据的处理结果的数据量与预设的第二阈值的比较结果,确定传输待处理数据的处理结果的方式。
例如,计算设备101中的GPU1012还可以将待处理数据的处理结果的数据量与预设的第二阈值进行比较,当待处理数据的处理结果的数据量(例如,待处理数据的处理结果的数据量为0.6Gbyte)大于或等于与预设的第二阈值(例如,预设的第二阈值的取值为0.4Gbyte)时,计算设备101中的GPU1012可以以上述步骤S205中方式2中的方法向计算设备102返回待处理数据的处理结果;或者,当待处理数据的处理结果的数据量(例如,待处理数据的处理结果的数据量600Kbyte)小于或等于与预设的第一阈值(例如,预设的第二阈值的取值为1Gbyte)时,计算设备101中的GPU1012可以以上述步骤S205中方式1中的方法向计算设备102返回待处理数据的处理结果。
当待处理数据的处理结果的传输可能会影响第一计算设备与第二计算设备之间的通信性能时,第一计算设备可以将待处理数据存储至第一存储资源中第二目标地址对应的存储空间,并在向第二计算设备发送的第二报文中携带第二目标地址,以使第二计算设备从第一存储资源中第二目标地址对应的存储空间获取待处理数据的处理结果,避免向第二计算设备直接发送待处理数据的处理结果,从而提高第一计算设备与第二计算设备之间的通信性能。
需要说明的是,第二目标地址还可以是计算设备102向计算设备101指示的,在此情况下,计算设备101无需向计算设备102通知第二目标地址。
还需要说明的是,当待处理数据为视频码流数据时,计算设备101向计算设备102返回的待处理数据的处理结果中还应该包括对视频码流数据解码后获得的视频码流数据对应的图像数据。
需要说明的是,当待处理数据的处理结果由计算设备101直接发送至计算设备102时,待处理数据的处理结果可以由计算设备101中的GPU1022使用远程直接数据存取(Remote Direct Memory Access,RDMA)方式直接发送至计算设备101中的CPU1011,而不需要经过计算设备101中的CPU1011。作为一种可能的实现方式,GPU1022可以为支持RDMA功能的芯片,此时,GPU1022可以直接将待处理数据的处理结果存储至计算设备102的内存。对于GPU1022基于RDMA方式传输数据的具体过程本申请不作限制。
当待处理数据由计算设备102直接发送至计算设备101时,待处理数据可以由计算设备102中的CPU1021使用RDMA方式直接发送至计算设备101中的GPU1012,而不需要经过计算设备101中的CPU1011。
还需要说明的是,在本申请中,步骤S203中方式1和方式2,以及步骤S205中方式1和方式2仅为示例性说明,并不对本申请构成任何限定,例如,上述4种方式可以进行任意组合,对应下面四种组合形式。在具体使用时,可以结合实际的应用场景进行选择。
场景1:当待处理数据的数据量大于或等于预设的第一阈值,且待处理数据的处理结果大于或等于预设的第二阈值时,计算设备102按照方式2向计算设备101传输待处理数据,计算设备101在得到待处理数据的处理结果后,按照方式4向计算设备102返回处理数据的处理结果。
场景2:当待处理数据的数据量小于或等于预设的第一阈值,且待处理数据的处理结果大于或等于预设的第二阈值时,计算设备102按照方式1向计算设备101传输待处理数据,计算设备101在得到待处理数据的处理结果后,按照方式4向计算设备102返回处理数据的处理结果。
场景3:当待处理数据的数据量大于或等于预设的第一阈值,且待处理数据的处理结果小于或等于预设的第二阈值时,计算设备102按照方式2向计算设备101传输待处理数据,计算设备101在得到待处理数据的处理结果后,按照方式3向计算设备102返回处理数据的处理结果。
场景4:当待处理数据的数据量小于或等于预设的第一阈值,且待处理数据的处理结果小于或等于预设的第二阈值时,计算设备102按照方式1向计算设备101传输待处理数据,计算设备101在得到待处理数据的处理结果后,按照方式3向计算设备102返回处理数据的处理结果。
本申请提供的数据处理的方法,通过将多个计算设备(例如,多个第一计算设备)组成异构资源池,使得当多个第二计算设备同时需要异构资源协助其执行业务请求时,可以将多个第二计算设备的请求协助执行业务请求的需求分散在异构资源池中,即使得异构资源池中的多个第一计算设备能够分别协助多个第二计算设备执行相应的业务请求,从而将第二计算设备与异构资源通信时产生的网络流量分散在异构资源池中,进而提高第二计算设备与异构资源之间的通信性能。
上文结合图1至图3,描述了本申请提供的数据处理的方法,下面结合图4至图6描述本申请实施例提供的数据处理的装置和计算设备。
图4为本申请提供的数据处理的装置300的示意性框图,装置300包括接收单元310、处理单元320与发送单元330。
接收单元310,用于接收第二计算设备发送的第一报文,该数据处理的装置与该第二计算设备通过网络进行通信,装置300用于协助第二计算设备执行业务处理,装置300为异构资源池中的计算设备,该异构资源池中包括至少一个数据处理的装置,该第一报文包括用于请求该数据处理的装置对待处理数据进行处理的指令;
处理单元320,用于根据指令,执行对待处理数据的处理;
发送单元330,用于向第二计算设备发送第二报文,第二报文包括待处理数据的处理结果。
可选地,第一报文包括待处理数据,则处理单元320还用于,解析第一报文获取待处理数据;根据指令对待处理数据进行处理。
可选地,第二计算设备配置有第一存储资源,数据处理的装置具有第一存储资源的访问权限,该第一报文中携带有第一目标地址,该第一目标地址用于指示该待处理数据在该第一存储资源中的存储地址,则该处理单元320还用于,根据该第一目标地址,从该第一存储资源中获取该待处理数据;根据该指令对该待处理数据进行处理。
可选地,该处理单元320还用于:将该待处理器数据的处理结果存储至第二目标地址,该第二目标地址为该第一存储资源的存储地址,该数据处理的装置向该第二计算设备发送的该第二报文中包括该第二目标地址,以便于该第二计算设备根据该第二目标地址,从该第一存储资源中获取该待处理数据的处理结果。
可选地,该发送单元330还用于:向该第二计算设备发送携带该处理结果的数据的该第二报文。
可选地,该待处理数据是由该第二计算设备使用远程直接数据存取RDMA技术传输至该数据处理的装置的。
可选地,该待处理数据的处理结果是由该数据处理的装置使用RDMA技术传输至该第二计算设备的。
可选地,该待处理数据为视频码流数据,该处理单元还用于:对该视频码流数据进行解码,获得该视频码流数据对应的图像数据;根据该指令,执行对该视频码流数据对应的图像数据的处理,该待处理数据的处理结果中包括该视频码流数据对应的图像数据。
可选地,配置有该第一存储资源的存储设备包括文件系统存储设备、分布式文件系统存储设备、块存储设备或对象存储设备。
可选地,该指令对应的处理包括人工智能AI处理。
应理解的是,本申请实施例的装置300可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据处理方法时,装置300及其各个模块也可以为软件模块。
根据本申请实施例的装置300可对应于执行本申请实施例中描述的方法,并且装置300中的各个单元的上述和其它操作和/或功能为了实现图3所述方法中第一计算设备执行的相应流程,为了简洁,在此不再赘述。
图5为本申请提供的数据处理的装置400的示意性框图,装置400包括发送单元410与接收单元420。
发送单元410,用于向第一计算设备发送第一报文,该第一计算设备与该数据处理的装置通过网络进行通信,第一计算设备用于协助装置400执行业务处理,该第一计算设备为异构资源池中的计算设备,该异构资源池中包括至少一个第一计算设备,该第一报文包括用于请求该第一计算设备对待处理数据进行处理的指令。
接收单元420,用于接收该第一计算设备发送的第二报文,该第二报文包括该待处理数据的处理结果。
可选地,该第一报文包括该待处理数据。
可选地,该数据处理的装置400配置有第一存储资源,该第一计算设备具有该第一存储资源的访问权限,该第一报文中携带有第一目标地址,该第一目标地址用于指示该待处理数据在该第一存储资源中的存储地址。
可选地,该第二报文中包括该第二目标地址,该数据处理的装置根据该第二目标 地址,从该第一存储资源中获取该待处理数据的处理结果。
可选地,该接收单元420还用于:接收该第一计算设备发送的携带该处理结果的数据的该第二报文。
可选地,该待处理数据是由该数据处理的装置使用远程直接数据存取RDMA方式传输至该第一计算设备的。
可选地,该待处理数据的处理结果是由该第一计算设备使用RDMA方式传输至该数据处理的装置的。
可选地,该待处理数据的处理结果中包括该视频码流数据对应的图像数据。
可选地,配置有该第一存储资源的存储设备包括文件系统存储设备、分布式文件系统存储设备、块存储设备或对象存储设备。
可选地,该指令对应的处理包括人工智能AI处理。
应理解的是,本申请实施例的装置400可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据处理方法时,装置300及其各个模块也可以为软件模块。
根据本申请实施例的装置400可对应于执行本申请实施例中描述的方法,并且装置400中的各个单元的上述和其它操作和/或功能为了实现图3所示方法中第二计算设备执行的相应流程,为了简洁,在此不再赘述。
图6为本申请提供的一种计算设备的结构示意图。如图所示,所述计算设备500包括第一处理器501、第二处理器502、存储器503、通信接口504和总线505。其中,第一处理器501、第二处理器502、存储器503和通信接口504通过总线505进行通信,也可以通过无线传输等其他手段实现通信。该存储器503用于存储指令,该第一处理器501用于执行该存储器503存储的指令。该存储器503存储程序代码5031,且第一处理器501可以调用存储器702中存储的程序代码5031执行图3所述数据处理方法。
应理解,在本申请中第一处理器501可以是CPU,第一处理器501还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
第二处理器502包括GPU、FPGA、ASIC或NPU中的至少一种。第二处理器主要用于执行协助另一计算设备处理的任务,例如,第二处理器可以协助另一计算设备处理视频码流。
该存储器503可以包括只读存储器和随机存取存储器,并向第一处理器501提供指令和数据。存储器503还可以包括非易失性随机存取存储器。该存储器503可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器 可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该总线505除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线505。
值得说明的是,计算设备500可以对应图1或图2所示的计算系统中的计算设备101;当计算设备500对应图1或图2所示的计算系统中的计算设备102时,第二处理器502可以作为一个可选的部件,计算设备102可以包括第二处理器502,也可以不包括第二处理器502。
应理解,根据本申请的计算设备500可对应于本申请中的数据处理的装置300或装置400,并可以对应于本申请图3所示方法中的第一计算设备或第二计算设备,并且当计算设备500对应于图3所示方法中的第一计算设备时,计算设备500中的各个模块的上述和其它操作和/或功能分别为了实现图3中的由第一计算设备执行的方法的操作步骤,当计算设备500对应于图3所示方法中的第二计算设备时,计算设备500中的各个模块的上述和其它操作和/或功能分别为了实现图3中的由第二计算设备执行的方法的操作步骤,为了简洁,在此不再赘述。
本申请还提供了一种计算机系统,该计算机系统可以为图1或图2中所示的计算机系统,该计算机系统中包括至少两个计算设备,其中一个计算设备可以为图1或图2中所示的计算设备101,该计算设备用于执行上述方法200中由第一计算设备执行的方法的操作步骤,另一个计算设备可以为图1或图2中所示的计算设备102,该计算设备用于执行上述方法200中由第二计算设备执行的方法的操作步骤,为了简洁,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (21)

  1. 一种数据处理的方法,其特征在于,包括:
    第一计算设备接收第二计算设备发送的第一报文,所述第一计算设备与所述第二计算设备通过网络进行通信,所述第一计算设备用于协助所述第二计算设备执行业务处理,所述第一计算设备为异构资源池中的计算设备,所述异构资源池中包括至少一个第一计算设备,所述第一报文包括用于请求所述第一计算设备对待处理数据进行处理的指令;
    所述第一计算设备根据所述指令,执行对所述待处理数据的处理;
    所述第一计算设备向所述第二计算设备发送第二报文,所述第二报文包括所述待处理数据的处理结果。
  2. 根据权利要求1所述的方法,其特征在于,所述第一报文包括所述待处理数据,则所述第一计算设备根据所述指令,执行对所述待处理数据的处理,包括:
    所述第一计算设备解析所述第一报文获取所述待处理数据;
    所述第一计算设备根据所述指令对所述待处理数据进行处理。
  3. 根据权利要求1所述的方法,其特征在于,所述第二计算设备配置有第一存储资源,所述第一计算设备具有所述第一存储资源的访问权限,所述第一报文中携带有第一目标地址,所述第一目标地址用于指示所述待处理数据在所述第一存储资源中的存储地址,则所述第一计算设备根据所述指令,执行对所述待处理数据的处理,包括:
    所述第一计算设备根据所述第一目标地址,从所述第一存储资源中获取所述待处理数据;
    所述第一计算设备根据所述指令对所述待处理数据进行处理。
  4. 根据权利要求1所述的方法,其特征在于,在所述第一计算设备向所述第二计算设备发送第二报文之前,所述方法还包括:
    所述第一计算设备将所述待处理数据的处理结果存储至第二目标地址,所述第二目标地址为所述第一存储资源的存储地址,
    则所述第一计算设备向所述第二计算设备发送第二报文,包括:
    所述第一计算设备向所述第二计算设备发送携带所述第二目标地址的所述第二报文,以便于所述第二计算设备根据所述第二目标地址,从所述第一存储资源中获取所述待处理数据的处理结果。
  5. 根据权利要求2或3所述方法,其特征在于,所述第一计算设备向所述第二计算设备发送第二报文,包括:
    所述第一计算设备向所述第二计算设备发送携带所述处理结果的数据的所述第二报文。
  6. 根据权利要求2所述的方法,其特征在于,所述待处理数据是由所述第二计算设备使用远程直接数据存取RDMA方式传输至所述第一计算设备的。
  7. 根据权利要求5所述的方法,其特征在于,所述待处理数据的处理结果是由所述第一计算设备使用RDMA方式传输至所述第二计算设备的。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述待处理数据的处理结果中包括所述视频码流数据对应的图像数据。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,配置有所述第一存储资源的存储设备包括文件系统存储设备、分布式文件系统存储设备、块存储设备或对象存储设备。
  10. 根据权利要求1至9中任一项所述的方法,其特征在于,所述指令对应的处理包括人工智能AI处理。
  11. 一种数据处理的装置,其特征在于,包括:
    接收单元,用于接收第二计算设备发送的第一报文,所述数据处理的装置与所述第二计算设备通过网络进行通信,所述数据处理的装置为异构资源池中的计算设备,所述异构资源池中包括至少一个数据处理的装置,所述数据处理的装置用于协助所述第二计算设备执行业务处理,所述第一报文包括用于请求所述数据处理的装置对待处理数据进行处理的指令;
    处理单元,用于根据所述指令,执行对所述待处理数据的处理;
    发送单元,用于向所述第二计算设备发送第二报文,所述第二报文包括所述待处理数据的处理结果。
  12. 根据权利要求11所述的装置,其特征在于,所述第一报文包括所述待处理数据,则所述处理单元还用于,解析所述第一报文获取所述待处理数据;根据所述指令对所述待处理数据进行处理。
  13. 根据权利要求11所述的装置,其特征在于,所述第二计算设备配置有第一存储资源,所述数据处理的装置具有所述第一存储资源的访问权限,所述第一报文中携带有第一目标地址,所述第一目标地址用于指示所述待处理数据在所述第一存储资源中的存储地址,则所述处理单元还用于,根据所述第一目标地址,从所述第一存储资源中获取所述待处理数据;根据所述指令对所述待处理数据进行处理。
  14. 根据权利要求12或13所述的装置,其特征在于,所述处理单元还用于:将所述待处理器数据的处理结果存储至第二目标地址,所述第二目标地址为所述第一存储资源的存储地址,所述数据处理的装置向所述第二计算设备发送的所述第二报文中包括所述第二目标地址。
  15. 根据权利要求12或13所述装置,其特征在于,所述发送单元还用于:向所述第二计算设备发送携带所述处理结果的数据的所述第二报文。
  16. 根据权利要求12所述的装置,其特征在于,所述待处理数据是由所述第二计算设备使用远程直接数据存取RDMA方式传输至所述数据处理的装置的。
  17. 根据权利要求15所述的装置,其特征在于,所述待处理数据的处理结果是由所述数据处理的装置使用RDMA方式传输至所述第二计算设备的。
  18. 根据权利要求11至17中任一项所述的装置,其特征在于,所述待处理数据为视频码流数据,所述处理单元还用于:对所述视频码流数据进行解码,获得所述视频码流数据对应的图像数据;根据所述指令,执行对所述视频码流数据对应的图像数据的处理,所述待处理数据的处理结果中包括所述视频码流数据对应的图像数据。
  19. 根据权利要求11至18中任一项所述的装置,其特征在于,配置有所述第一存储资源的存储设备包括文件系统存储设备、分布式文件系统存储设备、块存储设备或对象存储设备。
  20. 根据权利要求11至19中任一项所述的装置,其特征在于,所述指令对应的处理包括人工智能AI处理。
  21. 一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器用于存储计算机程序指令,所述计算设备运行时,所述处理器执行所述存储器中的所述计算机程序指令,以执行权利要求1至10中任一项所述方法的操作步骤。
PCT/CN2019/094203 2018-10-19 2019-07-01 数据处理的方法、装置和计算设备 WO2020078044A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19873706.6A EP3855704A4 (en) 2018-10-19 2019-07-01 DATA PROCESSING METHODS AND DEVICE AND COMPUTERING DEVICE
US17/232,195 US20210232437A1 (en) 2018-10-19 2021-04-16 Data processing method and apparatus, and computing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811223591.3 2018-10-19
CN201811223591.3A CN109547531B (zh) 2018-10-19 2018-10-19 数据处理的方法、装置和计算设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/232,195 Continuation US20210232437A1 (en) 2018-10-19 2021-04-16 Data processing method and apparatus, and computing device

Publications (1)

Publication Number Publication Date
WO2020078044A1 true WO2020078044A1 (zh) 2020-04-23

Family

ID=65844301

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/094203 WO2020078044A1 (zh) 2018-10-19 2019-07-01 数据处理的方法、装置和计算设备

Country Status (4)

Country Link
US (1) US20210232437A1 (zh)
EP (1) EP3855704A4 (zh)
CN (1) CN109547531B (zh)
WO (1) WO2020078044A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547531B (zh) * 2018-10-19 2021-04-09 华为技术有限公司 数据处理的方法、装置和计算设备
CN112422598A (zh) * 2019-08-22 2021-02-26 中兴通讯股份有限公司 资源调度方法、智能前端设备、智能网关及分布式系统
CN110704361A (zh) * 2019-08-28 2020-01-17 阿里巴巴集团控股有限公司 Rdma数据发送及接收方法、电子设备及可读存储介质
CN110955390B (zh) * 2019-11-22 2023-08-08 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备和存储介质
CN111182239B (zh) * 2020-01-12 2021-07-06 苏州浪潮智能科技有限公司 一种ai视频处理方法与装置
WO2021248423A1 (zh) * 2020-06-12 2021-12-16 华为技术有限公司 人工智能资源的调度方法、装置、存储介质和芯片
CN116467245A (zh) * 2022-01-12 2023-07-21 华为技术有限公司 计算系统、方法、装置及加速设备
CN116483553A (zh) * 2022-01-14 2023-07-25 华为云计算技术有限公司 计算设备、数据处理方法、系统及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130152076A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Network Access Control Policy for Virtual Machine Migration
CN104778148A (zh) * 2015-04-03 2015-07-15 哈尔滨工业大学 基于fpga的动态可重构嵌入式数据协处理平台及采用该平台实现的数据处理方法
CN106294214A (zh) * 2012-08-17 2017-01-04 英特尔公司 通过统一存储器架构的存储器共享
CN107292808A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 图像处理方法、装置及图像协处理器
CN107977922A (zh) * 2016-10-25 2018-05-01 杭州海康威视数字技术股份有限公司 一种图像分析方法、装置及系统
CN109547531A (zh) * 2018-10-19 2019-03-29 华为技术有限公司 数据处理的方法、装置和计算设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100992050B1 (ko) * 2006-01-12 2010-11-05 브로드콤 이스라엘 알 앤 디 가상화된 네트워크 환경에서 입력/출력 공유를 가지는프로토콜 오프로드 및 다이렉트 입력/출력을 위한 방법 및시스템
US11436672B2 (en) * 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10069779B2 (en) * 2013-03-25 2018-09-04 Ge Aviation Systems Llc Method of hybrid message passing with shared memory
CN104410666B (zh) * 2014-10-29 2018-09-11 浪潮(北京)电子信息产业有限公司 云计算下实现异构存储资源管理的方法及系统
US10230544B1 (en) * 2016-11-23 2019-03-12 Pure Storage, Inc. Efficient data forwarding in a networked device
US10541927B2 (en) * 2016-12-29 2020-01-21 Google Llc System and method for hardware-independent RDMA
US10891773B2 (en) * 2017-04-07 2021-01-12 Intel Corporation Apparatus and method for efficient graphics virtualization
CN107181825B (zh) * 2017-07-07 2021-08-17 广东中星电子有限公司 终端设备数据的在线处理方法
WO2019014265A1 (en) * 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES
US20200133909A1 (en) * 2019-03-04 2020-04-30 Intel Corporation Writes to multiple memory destinations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130152076A1 (en) * 2011-12-07 2013-06-13 Cisco Technology, Inc. Network Access Control Policy for Virtual Machine Migration
CN106294214A (zh) * 2012-08-17 2017-01-04 英特尔公司 通过统一存储器架构的存储器共享
CN104778148A (zh) * 2015-04-03 2015-07-15 哈尔滨工业大学 基于fpga的动态可重构嵌入式数据协处理平台及采用该平台实现的数据处理方法
CN107292808A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 图像处理方法、装置及图像协处理器
CN107977922A (zh) * 2016-10-25 2018-05-01 杭州海康威视数字技术股份有限公司 一种图像分析方法、装置及系统
CN109547531A (zh) * 2018-10-19 2019-03-29 华为技术有限公司 数据处理的方法、装置和计算设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3855704A4 *

Also Published As

Publication number Publication date
CN109547531A (zh) 2019-03-29
EP3855704A1 (en) 2021-07-28
CN109547531B (zh) 2021-04-09
EP3855704A4 (en) 2021-11-10
US20210232437A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
WO2020078044A1 (zh) 数据处理的方法、装置和计算设备
US10769098B2 (en) Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US10079889B1 (en) Remotely accessible solid state drive
US11487690B2 (en) Universal host and non-volatile memory express storage domain discovery for non-volatile memory express over fabrics
US10348830B1 (en) Virtual non-volatile memory express drive
US10305823B2 (en) Network interface card configuration method and resource management center
CN111865657B (zh) 一种加速管理节点、加速节点、客户端及方法
US10848366B2 (en) Network function management method, management unit, and system
WO2021093501A1 (zh) 一种任务处理方法和网络设备
CN108028833A (zh) 一种nas数据访问的方法、系统及相关设备
US11403009B2 (en) Storage system, and method and apparatus for allocating storage resources
US10050875B2 (en) Network service processing method and apparatus
WO2021197182A1 (zh) 程序加载方法、设备、系统及存储介质
WO2019095154A1 (zh) 一种调度加速资源的方法、装置及加速系统
WO2018113622A1 (zh) 基于虚拟机的数据包发送和接收方法及装置
US20160345283A1 (en) Method and apparatus for adjacent node registration, and method and system for cross-node registration
US20210240353A1 (en) Resource management method and apparatus
EP3629160B1 (en) Method and device for managing vnf instantiation
US20240061802A1 (en) Data Transmission Method, Data Processing Method, and Related Product
WO2014101502A1 (zh) 基于内存芯片互连的内存访问处理方法、内存芯片及系统
US20230106771A1 (en) Data Processing Method for Network Adapter and Network Adapter
CN109417561B (zh) 分布式资源管理方法和系统
US11489770B1 (en) Traffic service threads for large pools of network addresses
WO2018127013A1 (zh) 一种流数据的并发传输方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19873706

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019873706

Country of ref document: EP

Effective date: 20210421