DPU capability multiplexing method and device, electronic equipment, storage medium and program product

By using a pooling platform to uniformly schedule and orchestrate tasks for DPUs, the problem of low resource utilization caused by the static binding of DPU computing power to physical servers is solved. This enables cross-node computing power resource sharing and resource reuse, improving the overall performance and resource utilization efficiency of DPUs.

CN121814764APending Publication Date: 2026-04-07CHINA UNITED NETWORK COMM GRP CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-18
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

The static binding of DPU computing power to physical servers results in low resource utilization. When the computing power of a single DPU cannot meet the demand, the only way to expand is to increase the number of physical DPUs, which is costly, inefficient, and lacks fault recovery capabilities.

Method used

The pooling platform performs unified scheduling and task orchestration of DPUs. After receiving the DPU capacity requirements, it matches and schedules N reusable DPUs, divides the data to be processed into multiple slices and executes them in parallel, and realizes cross-node computing resource sharing.

Benefits of technology

It breaks through the computing power resource limitations of a single DPU, realizes cross-node computing power resource sharing, significantly improves the overall performance and resource utilization efficiency of DPU, and solves the problems of lack of elasticity in resource allocation and limited scalability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121814764A_ABST
    Figure CN121814764A_ABST
Patent Text Reader

Abstract

The invention provides a DPU capability multiplexing method and device, electronic equipment, a storage medium and a program product, relates to the technical field of communication, and is used for improving the resource utilization rate of a DPU. The method comprises the following steps: receiving a DPU call request message, wherein the DPU call request message comprises a DPU capability demand of a target application; based on the calling request, determining N reusable DPUs meeting the DPU capability requirement; n is an integer greater than or equal to 1; a calling response message is sent to a source DPU where the target application is located, the calling response message comprises the address information of the N reusable DPUs and is used for indicating the source DPU to segment the to-be-processed data of the target application according to the address information of the N reusable DPUs to obtain N data slices, and the N data slices are sent to the N reusable DPUs respectively.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to methods, apparatus, electronic devices, storage media, and program products for DPU capability multiplexing. Background Technology

[0002] In modern data center and cloud computing environments, offloading computing tasks to smart network interface cards (NICs) has become a key technological trend to overcome the gap between the slowing growth of central processing unit (CPU) performance and the continuous improvement of network bandwidth. Data processing units (DPUs), as smart NICs integrating multi-core processors and dedicated hardware accelerators, can provide hardware acceleration for data plane functions such as networking, storage, and security, thereby significantly freeing up host CPU resources.

[0003] Currently, when the computing power of a single DPU cannot meet application requirements, the common approach is to add extra DPU network cards to the server or deploy more server nodes equipped with DPUs in the cluster. This approach constitutes a horizontally scalable architecture based on physical resources, where the function and computing power of each DPU primarily serve its local physical server or specific localized workloads.

[0004] However, the static binding of DPU computing power to physical servers results in low resource utilization of DPU. Summary of the Invention

[0005] This application provides a method, apparatus, electronic device, storage medium, and program product for reusing DPU capabilities to improve the resource utilization of DPU.

[0006] Firstly, this application provides a DPU capability reuse method applied to a pooling platform, comprising: receiving a DPU call request message, the DPU call request message including the DPU capability requirements of a target application; determining N reusable DPUs that meet the DPU capability requirements based on the call request; N being an integer greater than or equal to 1; sending a call response message to the source DPU where the target application resides, the call response message including address information of the N reusable DPUs, used to instruct the source DPU to divide the data to be processed in the target application into N data slices according to the address information of the N reusable DPUs, and sending the N data slices to the N reusable DPUs respectively.

[0007] The technical solution provided in this application offers at least the following benefits: It enables unified scheduling and task orchestration of DPUs through a pooling platform. When a call request message containing the DPU capability requirements of the target application is received, the pooling platform can match and schedule N reusable DPUs. The DPU containing the target application segments the data to be processed and transmits the data slices to the N reusable DPUs for parallel execution using address information. This method overcomes the problem of limited computing resources in a single DPU, achieves cross-node computing resource sharing, and significantly improves the overall performance and resource utilization efficiency of the DPU.

[0008] One possible implementation involves determining N reusable DPUs that meet the DPU capability requirements based on the call request message, including: responding to the call request message by obtaining the capability status information of at least one DPU network interface managed by the pooling platform; or receiving the capability status information reported by at least one DPU network managed by the pooling platform according to a preset period; and determining N reusable DPUs based on the capability status information of at least one DPU network interface and the DPU capability requirements.

[0009] Another possible implementation is that the capability status information includes at least one of the following: the resource status of the DPU network interface card (NIC) and the application status deployed on the DPU NIC.

[0010] Another possible implementation involves each of the N data slices corresponding to a data identifier. The method further includes sending the address information of the destination DPU of the target application to the N reusable DPUs, so that the reusable DPUs can send the processed data slices to the destination DPUs. The destination DPU is used to integrate the data according to the data identifiers corresponding to the data slices to obtain a complete data stream.

[0011] Secondly, this application provides a DPU capability reuse method applied to a DPU network interface card (NIC). The method includes: sending a DPU call request message to a pooling platform based on the DPU capability requirements of a target application deployed within the DPU NIC; the DPU call request message requests the pooling platform to determine reusable DPUs based on the DPU capability requirements of the target application; receiving a call response message from the pooling platform, the call response message including address information of N reusable DPUs; dividing the data to be processed by the target application into N data slices; and sending the N data slices to the N reusable DPUs respectively based on their address information.

[0012] The technical solution provided in this application offers at least the following advantages: The DPU network interface card (NIC) can send a DPU call request message to the pooling platform based on the DPU capability requirements of the deployed target application, thereby obtaining the address information of reusable DPUs. The DPU NIC of the deployed target application then splits the data to be processed into multiple data slices, which are uniformly allocated by the pooling platform to the reusable DPUs for parallel processing. This method overcomes the computing power limitations of a single DPU NIC, realizes resource reuse of the DPU NIC, and improves data processing efficiency and DPU resource utilization.

[0013] By coordinating the DPU network interface card (NIC) with the pooling platform, fine-grained dynamic scheduling of computing resources is achieved. Specifically, the source DPU NIC can proactively initiate computing power assistance requests based on application needs and automatically split the tasks to be processed into multiple data slices, which are then uniformly allocated by the pooling platform to multiple reusable DPUs in the cluster for parallel processing. This mechanism effectively overcomes the physical computing power limitations of a single DPU NIC, achieves cross-node load balancing and resource reuse, and significantly improves the throughput efficiency of large-scale data processing and the overall resource utilization of the system.

[0014] One possible implementation method further includes: acquiring a data slice to be processed; a data identifier corresponding to the data slice; receiving the address information of the destination DPU of the target application sent by the pooling platform; after processing the data slice to be processed, sending the processed slice data to the destination DPU according to the address information of the destination DPU, so that the destination DPU can integrate the processed slice data according to the data identifier to obtain a complete data stream.

[0015] Thirdly, this application provides a DPU capability multiplexing device applied to a pooling platform, comprising: a receiving unit and a processing unit; the receiving unit is used to receive a DPU call request message, the DPU call request message including the DPU capability requirements of the target application; the processing unit is used to determine N reusable DPUs that meet the DPU capability requirements based on the call request message; N is an integer greater than or equal to 1; the processing unit is used to send a call response message to the source DPU where the target application is located, the call response message including the address information of the N reusable DPUs, and is used to instruct the source DPU to divide the data to be processed of the target application into N data slices according to the address information of the N reusable DPUs, and send the N data slices to the N reusable DPUs respectively.

[0016] One possible implementation is a processing unit, specifically configured to respond to a call request message to obtain the capability status information of at least one DPU network interface managed by the pooling platform; or to receive the capability status information reported by at least one DPU network managed by the pooling platform according to a preset period; and to determine N reusable DPUs based on the capability status information of at least one DPU network interface and the DPU capability requirements.

[0017] Another possible implementation involves a processing unit that sends the address information of the destination DPU of the target application to N reusable DPUs, enabling the reusable DPUs to send the processed data slices to the destination DPUs. The destination DPUs then integrate the data according to the data identifiers corresponding to the data slices to obtain a complete data stream.

[0018] Fourthly, this application provides a DPU capability multiplexing device applied to a DPU network interface card (NIC), comprising: a processing unit and a communication unit; the processing unit is used to send a DPU call request message to a pooling platform according to the DPU capability requirements of a target application deployed within the DPU NIC; the DPU call request message is used to request the pooling platform to determine reusable DPUs according to the DPU capability requirements of the target application; the processing unit receives a call response message sent by the pooling platform, the call response message including address information of N reusable DPUs; the processing unit divides the data to be processed in the target application into N data slices; the communication unit sends the N data slices to the N reusable DPUs respectively according to the address information of the N reusable DPUs.

[0019] One possible implementation includes a processing unit, specifically used to acquire a data slice to be processed; a data slice corresponds to a data identifier; a processing unit, specifically used to receive the address information of the destination DPU of the target application sent by the pooling platform; and a communication unit, specifically used to process the data slice to be processed and then send the processed slice data to the destination DPU according to the address information of the destination DPU, so that the destination DPU can integrate the processed slice data according to the data identifier to obtain a complete data stream.

[0020] Fifthly, this application provides an electronic device comprising: a processor and a memory; the memory storing processor-executable instructions; when the processor is configured to execute the instructions, causing the electronic device to implement the methods of the first or second aspect described above.

[0021] In a sixth aspect, this application provides a computer-readable storage medium comprising: computer software instructions; which, when executed in an electronic device, cause the electronic device to implement the methods described in the first or second aspect.

[0022] In a seventh aspect, this application provides a computer program product comprising a computer program; when the computer program is run in an electronic device, the electronic device causes the electronic device to implement the methods of the first or second aspect described above.

[0023] The beneficial effects of the third to seventh aspects mentioned above are described in the corresponding descriptions of the first or second aspects, and will not be repeated here. Attached Figure Description

[0024] Figure 1 A schematic diagram of the system architecture for a DPU capability reuse method provided in this application; Figure 2 A flowchart illustrating a DPU capability reuse method provided in this application; Figure 3 A schematic diagram of a DPU capability reuse method provided in this application; Figure 4 A flowchart illustrating another DPU capability reuse method provided in this application; Figure 5 A flowchart illustrating another DPU capability reuse method provided in this application; Figure 6 A flowchart illustrating another DPU capability reuse method provided in this application; Figure 7 A schematic diagram of the composition of a DPU capability multiplexing device provided in this application; Figure 8 A schematic diagram of another DPU capability multiplexing device provided in this application; Figure 9 This is a schematic diagram of the composition of an electronic device provided in this application. Detailed Implementation

[0025] The following is a detailed description, with reference to the accompanying drawings, of a DPU capability multiplexing method, apparatus, electronic device, storage medium, and program product provided in this application.

[0026] In this article, the term "and / or" is merely a description of the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone.

[0027] The terms "first" and "second," etc., used in the specification and drawings of this application are used to distinguish different objects or to distinguish different treatments of the same object, rather than to describe a specific order of objects.

[0028] Furthermore, the terms "comprising" and "having," and any variations thereof, used in the description of this application are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may optionally include other steps or units not listed, or may optionally include other steps or units inherent to such process, method, product, or apparatus.

[0029] It should be noted that in the embodiments of this application, the words "exemplary" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design scheme described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design schemes. Specifically, the use of the words "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.

[0030] To facilitate a clear description of the technical solutions of the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish the same or similar items with essentially the same function and effect. Those skilled in the art can understand that the terms "first" and "second" are not intended to limit the quantity or execution order.

[0031] In the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0032] In cloud computing environments, Data Processing Units (DPUs) are used to implement virtual switch functions, offloading network packet processing tasks from the host CPU to the DPU. In storage systems, DPUs handle data compression, encryption, and other storage processing tasks. In the security field, DPUs accelerate security functions such as firewalls and intrusion detection. A common characteristic of these application scenarios is that the DPU acts as an auxiliary component of the server, its functionality and service scope limited to a single physical server, unable to provide services across server boundaries. In this architecture, each DPU on a server forms an independent resource; even if a DPU on a particular server is idle, it cannot assist other servers with higher loads.

[0033] In current data center architectures, the Data Processing Unit (DPU) typically connects to the server motherboard via a Peripheral Component Interconnect Express (PCIe) interface, operating as a dedicated coprocessor. Its implementation primarily involves: firstly, at the hardware level, the DPU integrates a multi-core CPU, a hardware acceleration engine, and a high-speed network interface, possessing independent data processing capabilities; secondly, at the software level, the DPU interacts with the host system through specific drivers and Application Programming Interfaces (APIs), undertaking specific data processing tasks.

[0034] However, this implementation method has three main drawbacks: First, resource allocation lacks flexibility. The computing resources of the DPU are fixedly bound to the physical servers and cannot be dynamically adjusted according to the actual workload, resulting in low resource utilization. Second, scalability is limited. When the processing capacity of a single DPU cannot meet the demand, expansion can only be achieved by increasing the number of physical DPUs. This coarse-grained expansion method is costly and inefficient. Third, fault recovery capabilities are insufficient. Due to the lack of a cluster-level DPU resource pool, when a DPU fails, it is difficult to migrate the workload to other DPUs in a timely manner, affecting system reliability. These drawbacks severely restrict the large-scale application of DPUs in large data centers.

[0035] To address the aforementioned technical issues, this application provides a method for reusing DPU capabilities. The approach involves a pooling platform for unified scheduling and task orchestration of DPUs. When a request message containing the DPU capability requirements of a target application is received, the pooling platform matches and schedules N reusable DPUs. The DPU containing the target application segments the data to be processed and transmits these data slices to the N reusable DPUs for parallel execution using address information. This method overcomes the limitation of computing resources in a single DPU, enabling cross-node computing resource sharing and significantly improving the overall performance and resource utilization efficiency of the DPU.

[0036] The embodiments provided in this application will now be described in detail with reference to the accompanying drawings.

[0037] This application provides a DPU capability reuse method that can be applied to, for example... Figure 1 In the system architecture shown. For example... Figure 1 As shown, the system architecture includes: DPU10, pooling platform 20, and server. DPU10 and pooling platform 20 communicate with each other, and DPU10 and server also communicate with each other.

[0038] In some embodiments, the DPU10 provides basic data processing capabilities through an integrated dedicated acceleration engine (such as an encryption / decryption engine, a programmable pipeline) and a multi-core processor.

[0039] In some embodiments, an application 101 is deployed on the DPU10. The application 101 is a software application or service component that needs to use the computing power resources of the DPU10 to complete data processing tasks. As a specific implementation carrier of the capabilities of the DPU10, the application 101 provides specific data processing services such as regular expression matching, data compression, and AES encryption by calling the hardware acceleration resources of the DPU10 (such as encryption and decryption engines, programmable data planes, etc.).

[0040] In some embodiments, a capability probe 102 is deployed in the DPU10 to continuously monitor the resource status within a single DPU10 card (such as CPU core utilization, FPGA programmable logic unit occupancy, many-core processor load, memory usage, and the activity and throughput performance of hardware acceleration engines (such as encryption / decryption engines)). Simultaneously, it monitors the operational status of the application 101 or programmable data forwarding pipeline deployed on the DPU10 (such as service availability, current load level, and processing latency). The collected resource and application status data are periodically aggregated and reported to the pooling platform 20 to maintain the real-time nature of the global resource view; alternatively, it responds to proactive query requests initiated by the pooling platform 20, providing immediate feedback on current status information as needed to ensure the platform can obtain accurate DPU capability status during scheduling decisions.

[0041] In some embodiments, a transceiver module 103 is deployed in the DPU10. When a DPU capability call request is received, the original data to be processed is divided into multiple data fragments and a unique data identifier is attached. The marked data fragments are encapsulated into transmission units that conform to the interface specification of the pooling platform 20. According to the routing policy issued by the pooling platform 20, the data fragments are forwarded to the reusable DPU10 through platform relay or direct connection path between DPUs.

[0042] In some embodiments, when the transceiver module 103 in the reusable DPU 10 acts as a data receiver, it caches data fragments from the source DPU or platform relay, sorts and reassembles them according to the data identifiers carried by the fragments, and restores the original order of the data stream.

[0043] For example, DPU10 can be dedicated hardware existing as an independent network card, connected to the server motherboard via a PCIe interface, and equipped with a multi-core processor, hardware acceleration engine, and high-speed network port; it can also be a system-on-a-chip integrated on the server motherboard, acting as a coprocessor sharing memory space with the main CPU and communicating via a high-speed interconnect bus; or it can be an intelligent network device with computing capabilities, directly deployed in the data center network architecture, acting as a computing node at the network edge to process passing data traffic in real time. This application does not limit the specific device form of DPU10.

[0044] In some embodiments, the server provides the basic operating environment through an operating system and management programs, and is responsible for loading the DPU10 driver, updating firmware, etc. The DPU10 can be deployed on the server.

[0045] In some embodiments, the pooling platform 20 receives resource status information and application status information periodically or on demand reported by the capability probes 102 deployed on each DPU 10, and constructs and maintains a global resource view. It encapsulates and abstracts the underlying capability interfaces provided by heterogeneous or homogeneous DPUs 10 from different vendors to form standardized service interfaces for applications 101 deployed on the DPUs 10 to call.

[0046] In some embodiments, the pooling platform 20 receives a DPU capability call request initiated by the application 101, and matches an available DPU 10 that meets the requirements of the call request based on the call request and the global resource view.

[0047] For example, the pooling platform 20 can be one or more physical servers or virtual machines; or it can be a distributed software system based on a microservice architecture, deployed on cloud computing infrastructure; or it can be a core service component integrated into a data center network operating system. This application embodiment does not limit the specific device form of the pooling platform 20.

[0048] It should be noted that the system architecture described in the embodiments of this application is for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and does not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of system architecture, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.

[0049] See Figure 2 This is a flowchart illustrating a DPU capability reuse method provided in an embodiment of this application. Figure 2 As shown, the DPU capability reuse method provided in this application can be implemented through the above-mentioned pooling platform, specifically including the following steps S201~S203.

[0050] S201. Receive DPU call request message. The DPU call request message includes the DPU capability requirements of the target application.

[0051] Among them, the DPU call request message describes the characteristic parameters of the required DPU capabilities to the pooling platform.

[0052] In some embodiments, the DPU capability requirements of the target application include, but are not limited to, the following: video encoding requirements, such as requiring real-time transcoding capabilities for high-density video streams compliant with H.265 / HEVC standards; data security requirements, such as specifying the use of the AES-256 algorithm for line-rate encryption of the data stream; and network processing requirements, such as implementing programmable packet classification, filtering, or load balancing functions based on a 5-tuple (source / destination IP address, port number, and protocol type).

[0053] In some embodiments, the DPU call request message may also include the following key fields: performance metrics (such as throughput ≥100Gbps, latency ≤50μs, etc.), quality of service level (such as high availability requirements), and data characteristics (such as the number of data streams).

[0054] For example, video streaming applications need to calculate the minimum throughput required for real-time processing based on resolution, frame rate, and encoding complexity (e.g., 4K / 60fps video streams require ≥500Mbps H.265 encoding capability). They also need to specify the application's functional requirements, such as specifying AES-256-GCM mode for encryption algorithms and selecting LZ4 or Zstd standards for compression algorithms. These capability requirements are structured and encapsulated, including parameters such as function type, performance thresholds (throughput / latency), and Service Level Agreements (SLAs), forming standardized call request messages that the pooling platform can parse.

[0055] In some embodiments, the DPU transmits call request messages to the pooling platform through a standardized interface. The pooling platform parses the standardized call request messages to obtain the capability requirements of the applications deployed in the DPU, providing a basis for the subsequent allocation of reusable DPUs.

[0056] S202. Based on the call request message, determine N reusable DPUs that meet the DPU capability requirements.

[0057] Where N is an integer greater than or equal to 1.

[0058] In some embodiments, in response to a call request message, the capability status information of at least one DPU network interface managed by the pooling platform is obtained; or, the capability status information reported by at least one DPU network managed by the pooling platform according to a preset period is received. Based on the capability status information of at least one DPU network interface and the DPU capability requirements, N reusable DPUs are determined.

[0059] The capability status information includes at least one of the following: the resource status of the DPU network interface card (NIC) and the application status deployed on the DPU NIC.

[0060] In some embodiments, the pooling platform first parses the received DPU call request message, extracting parameters such as function type, performance metrics, and service quality. Then, the pooling platform queries the global resource view, filters out all candidate DPUs that match in function, and further evaluates them based on real-time status data (such as computing core utilization, remaining memory capacity, and application health). Through optimization algorithms (such as comprehensively considering load balancing, network latency, and energy efficiency), N nodes with suitable current load, meeting performance standards, and satisfying the Service Level Agreement (SLA) requirements are dynamically selected from the candidate DPUs as reusable DPUs.

[0061] In some embodiments, if no available DPU resources are detected within the cluster to meet task requirements, the pooling platform will initiate a retry mechanism. First, it enters a waiting state for a preset configurable interval (e.g., a configurable threshold of 500 milliseconds to 2 seconds). After the waiting period, the pooling platform automatically reactivates the query for DPU capability status information, sends a status collection request to the capability probe, and updates the global resource view of the DPU. If no available resources are found after the retry, the next waiting interval is dynamically extended according to a preset retry strategy (e.g., an exponential backoff algorithm) until resources are ready or the maximum number of retry attempts is reached. This mechanism effectively addresses dynamic fluctuations in cluster resources, improving task scheduling success rates under high load scenarios through gradual retries.

[0062] S203. Send a call response message to the source DPU where the target application is located. The call response message includes the address information of N reusable DPUs, which is used to instruct the source DPU to divide the data to be processed in the target application into N data slices according to the address information of the N reusable DPUs, and send the N data slices to the N reusable DPUs respectively.

[0063] In some embodiments, each of the N data slices corresponds to a data identifier.

[0064] For example, the core fields of the data identifier include: sequence number (identifying the sequential position of the slice in the original data stream), source node address (recording the location of the source DPU that generated the slice), timestamp (marking the slice generation time), and checksum (used for data integrity verification). The data identifier is used to ensure the traceability of data slices, the reliability of sequence reassembly, and the integrity of data transmission, providing support for parallel processing across DPUs.

[0065] In some embodiments, the address information of the destination DPU of the target application is sent to N reusable DPUs, so that the reusable DPUs send the processed data slices to the destination DPUs. The destination DPU is used to integrate the data according to the data identifiers corresponding to the data slices to obtain a complete data stream.

[0066] In some embodiments, the pooling platform can monitor the resource status information of all DPUs in the resource pool within the cluster, including hardware resource utilization (such as compute core load, remaining memory capacity, and hardware accelerator idle rate) and application status deployed on the DPU network cards (such as service response latency, task queue depth, and health status indicators). When the computing power of a single DPU in the resource pool cannot meet the high throughput or low latency requirements of the target application, or to optimize the overall processing efficiency of the cluster, the pooling platform will trigger a multi-card collaborative processing mechanism.

[0067] For example, such as Figure 3 As shown, when the computing power of DPU1 in resource pool A cannot meet the needs of application 1, the resource status and call request message of application 1 in DPU1 are sent to the pooling platform. The pooling platform selects DPU1, DPU2, and DPU3 as a set of reusable DPUs and transmits the address information of the set of reusable DPUs to DPU1. DPU1 divides the data to be processed into 3 data slices and transmits the data slices to the reusable DPUs for data processing according to the address information. The processed data slices are transmitted to the destination DPU (such as one of the DPUs in the resource pool). The destination DPU sorts, deduplicates, and reassembles all slices by parsing the global task identifier and sequence number carried by each data slice, and finally restores the complete encrypted data stream.

[0068] Based on the above embodiments, a pooling platform is used to uniformly schedule and orchestrate tasks for DPUs. When a call request message containing the DPU capability requirements of the target application is received, the pooling platform can match and schedule N reusable DPUs. The DPU containing the target application will segment the data to be processed and transmit the data slices to the N reusable DPUs for parallel execution using address information. This method overcomes the problem of limited computing resources of a single DPU, realizes cross-node computing resource sharing, and significantly improves the overall performance and resource utilization efficiency of DPUs.

[0069] In some embodiments, such as Figure 4 As shown, the DPU capability multiplexing method provided in this application embodiment is applied to a DPU network card, and the method includes the following steps S401~S404: S401. Based on the DPU capability requirements of the target application deployed within the DPU network interface, send a DPU call request message to the pooling platform. Among them, the DPU call request message is used to request the pooling platform to determine the reusable DPUs based on the DPU capability requirements of the target application.

[0070] For example, after generating a call request message, the source DPU sends the message through the API interface provided by the pooling platform. Upon receiving the request, the pooling platform first parses the details of the DPU's capability requirements (such as algorithm type, performance metrics, and quality of service requirements), and then queries its maintained global resource view. This global resource view integrates real-time status data periodically reported by each DPU's capability probes, including the resource status of the DPU's network interface card (such as compute core load) and the running status of the deployed application (such as throughput and processing latency). The pooling platform compares the resource status with the capability requirements of the call request message and selects the currently available and performance-compliant reusable DPUs.

[0071] S402. Receive the call response message sent by the pooling platform. The call response message includes the address information of N reusable DPUs.

[0072] For example, the call response message is encapsulated in a structured data format (such as JSON or XML) and includes parameters such as the IP address of the reusable DPU, the service port, and the communication protocol (such as TCP / UDP).

[0073] In some embodiments, the pooling platform also issues task sharding rules, such as specifying the range of data slices that each reusable DPU node is responsible for processing. After parsing the message, the communication module of the source DPU will initialize a secure communication link with the reusable DPU based on the address information, and prepare the data sharding and forwarding process according to the sharding rules.

[0074] S403. Divide the data to be processed in the target application into N data slices.

[0075] As one possible approach, the source DPU segments the data to be processed according to the sharding strategy issued by the pooling platform. This includes: the transceiver modules in the source DPU can segment data based on task characteristics (such as packet size, number of streams, and processing latency requirements) and the computing power distribution of reusable DPUs.

[0076] For example, for streaming data (such as video streams), a time-based slicing method is typically used, dividing continuous data into independent processing units of fixed duration (such as 100 milliseconds). For message data (such as network traffic), it can be grouped based on session streams (such as TCP 5-tuples) or fixed sizes (such as 1500 bytes / slice).

[0077] In some embodiments, each data slice is assigned a unique data identifier, which includes information such as task ID, sequence number, and timestamp.

[0078] S404. Based on the address information of the N reusable DPUs, send the N data slices to the N reusable DPUs respectively.

[0079] For example, each reusable DPU has the capability to process specific types of data slices: for instance, for video stream processing tasks, the node numbered DPU-01 might be specifically responsible for H.265 encoding acceleration, while DPU-02 focuses on image noise reduction. The source DPU's transceiver module matches the processing requirements of the data slices (such as encoding type and encryption algorithm) with the hardware capabilities of the reusable DPU, sending data slices requiring H.265 encoding to DPU-01, and routing data slices requiring AES encryption to DPU-02.

[0080] In some embodiments, such as Figure 5 As shown, the DPU capability reuse method provided in this application embodiment further includes the following steps S501~S503: S501. Obtain the data slice to be processed.

[0081] In this context, each data slice corresponds to a data identifier. In some embodiments, the DPU can be reused to synchronously acquire the data identifier corresponding to the data slice when receiving it.

[0082] In some embodiments, the source DPU itself can also be used as a reusable DPU for task processing. If the source DPU is detected to have idle resources and meet the task requirements, the source DPU processes at least one data slice.

[0083] For example, a reusable DPU can receive data slices forwarded from a source DPU or pooling platform via an API interface. Each data slice is accompanied by a data identifier, which includes a task ID (such as "task-7b3e") and a slice sequence number (such as "seq-085").

[0084] S502, Receive the address information of the destination DPU of the target application sent by the pooling platform.

[0085] For example, before the task is executed, the reusable DPU also receives routing instructions issued by the pooling platform to determine the delivery target of the processing result. For example, the destination DPU is identified by an IP address (such as "192.168.10.15:8888") and may include network parameters such as transport protocol (such as VxLAN) and quality of service level (such as DSCP tag).

[0086] S503. After processing the data slices to be processed, the processed slice data is sent to the destination DPU according to the address information of the destination DPU, so that the destination DPU can integrate the processed slice data according to the data identifier to obtain a complete data stream.

[0087] For example, after a reusable DPU completes the specified processing (such as decryption) of a data slice, it maintains the original data identifier and encapsulates the processing result into a new data packet. Then, based on the address information of the destination DPU, the data packet is routed to the target node through an overlay network tunnel (such as Geneve). After receiving all slices, the destination DPU sorts and reassembles them according to the sequence number in the data identifier to restore the complete data stream.

[0088] In some embodiments, after the reusable DPU completes the specified processing of a data slice, it maintains the original data identifier and encapsulates the processing result and the identifier together into a new data packet. This data packet is then returned to the source DPU, which caches, sorts, and reassembles all returned data slices based on the sequence information in the data identifier to restore their original data stream order. The complete data stream is then forwarded by the source DPU to the final destination DPU.

[0089] Based on the above embodiments, the DPU network interface card (NIC) can send a DPU call request message to the pooling platform according to the DPU capability requirements of the deployed target application, thereby obtaining the address information of reusable DPUs. The DPU NIC of the deployed target application splits the data to be processed into multiple data slices, which are then uniformly allocated by the pooling platform to the reusable DPUs for parallel processing. This method breaks through the computing power limitation of a single DPU NIC, realizes resource reuse of DPU NICs, and improves data processing efficiency and DPU resource utilization.

[0090] The following describes a specific embodiment of the DPU capability reuse method of this application. The specific implementation process of this method is as follows: Figure 6 As shown.

[0091] S601, the source DPU network interface card sends a DPU call request message to the pooling platform according to the DPU capability requirements of the target application deployed internally.

[0092] S602. The pooling platform queries the capability status information of the DPU network interface managed by the pooling platform based on the received call request message.

[0093] S603, the pooling platform determines whether the managed DPU network cards are available.

[0094] For example, if the DPU network card is available, proceed to step S605; if the DPU network card is unavailable, proceed to step S604.

[0095] S604, Wait for the preset time interval.

[0096] For example, after waiting for a preset time interval, the process jumps to step S602.

[0097] S605, the pooling platform determines N reusable DPUs.

[0098] S606: The source DPU network card receives a call response message sent by the pooling platform, which contains the address information of N reusable DPUs and the address information of the destination DPU.

[0099] S607, the source DPU divides the data to be processed by the target application into N data slices.

[0100] S608: The source DPU sends the address information of the N data slices and the destination DPU to the N reusable DPUs according to the address information of the N reusable DPUs.

[0101] S609: The reusable DPU sends the processed slice data to the destination DPU based on the address information of the destination DPU.

[0102] S6010: The destination DPU integrates the processed slice data according to the data identifier to obtain a complete data stream.

[0103] As can be seen, the above mainly describes the solutions provided by the embodiments of this application from a methodological perspective. To achieve the above functions, the embodiments of this application provide corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, in conjunction with the modules and algorithm steps of the various examples described in the embodiments disclosed herein, the embodiments of this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this invention.

[0104] This application embodiment can divide the DPU capability multiplexing device into functional modules according to the above method example. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. Optionally, the module division in this application embodiment is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.

[0105] In some embodiments, this application also provides a DPU capability multiplexing apparatus. The DPU capability multiplexing apparatus may include one or more functional modules for implementing the DPU capability multiplexing method of the above method embodiments.

[0106] For example, Figure 7 This is a schematic diagram illustrating the composition of a DPU capability multiplexing device provided in an embodiment of this application. Figure 7 As shown, the DPU capability multiplexing device 700 is applied to a pooling platform and includes a receiving unit 701 and a processing unit 702.

[0107] The receiving unit 701 is used to receive a DPU call request message, which includes the DPU capability requirements of the target application; the processing unit 702 is used to determine N reusable DPUs that meet the DPU capability requirements based on the call request message; N is an integer greater than or equal to 1; the processing unit 702 is used to send a call response message to the source DPU where the target application is located, which includes the address information of the N reusable DPUs, and is used to instruct the source DPU to divide the data to be processed in the target application into N data slices according to the address information of the N reusable DPUs, and send the N data slices to the N reusable DPUs respectively.

[0108] In some embodiments, the processing unit 702 is specifically configured to, in response to a call request message, obtain capability status information of at least one DPU network interface managed by the pooling platform; or, receive capability status information reported by at least one DPU network managed by the pooling platform according to a preset period; and determine N reusable DPUs based on the capability status information of at least one DPU network interface and the DPU capability requirements.

[0109] In other embodiments, the processing unit 702 is specifically used to send the address information of the destination DPU of the target application to N reusable DPUs, so that the reusable DPUs send the processed data slices to the destination DPUs; wherein, the destination DPU is used to integrate the data according to the data identifier corresponding to the data slice to obtain a complete data stream.

[0110] For example, Figure 8 This is a schematic diagram illustrating the composition of a DPU capability multiplexing device provided in an embodiment of this application. Figure 8 As shown, the DPU capability multiplexing device 800 is applied to the DPU network card and includes a processing unit 801 and a communication unit 802.

[0111] Processing unit 801 is used to send a DPU call request message to the pooling platform according to the DPU capability requirements of the target application deployed in the DPU network card; the DPU call request message is used to request the pooling platform to determine the reusable DPUs according to the DPU capability requirements of the target application; processing unit 801 receives a call response message sent by the pooling platform, the call response message includes the address information of N reusable DPUs; processing unit 801 divides the data to be processed of the target application into N data slices; communication unit 802 sends the N data slices to the N reusable DPUs respectively according to the address information of the N reusable DPUs.

[0112] In some embodiments, the processing unit 801 is specifically used to acquire a data slice to be processed; the data slice corresponds to a data identifier; the processing unit 801 is specifically used to receive the address information of the destination DPU of the target application sent by the pooling platform; the communication unit 802 is specifically used to process the data slice to be processed, and then send the processed slice data to the destination DPU according to the address information of the destination DPU, so that the destination DPU can integrate the processed slice data according to the data identifier to obtain a complete data stream.

[0113] In the case of implementing the functions of the integrated modules described above in hardware, this embodiment of the invention provides a possible structural schematic diagram of the electronic device involved in the above embodiments. For example... Figure 9 As shown, the electronic device 900 includes: a processor 902, a communication interface 903, and a bus 904. Optionally, the electronic device 900 may also include a memory 901.

[0114] Processor 902 may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. Processor 902 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. Processor 902 may also be a combination that implements computing functions, such as including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.

[0115] The communication interface 903 is used to connect to other devices via a communication network. This communication network can be Ethernet, wireless access network, wireless local area network (WLAN), etc.

[0116] The memory 901 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto.

[0117] As one possible implementation, the memory 901 can exist independently of the processor 902. The memory 901 can be connected to the processor 902 via a bus 904 and is used to store instructions or program code. When the processor 902 calls and executes the instructions or program code stored in the memory 901, it can implement the DPU capability reuse method provided in this embodiment of the invention.

[0118] In another possible implementation, the memory 901 can also be integrated with the processor 902.

[0119] The 904 bus can be an extended industry standard architecture (EISA) bus, etc. The 904 bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 9 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0120] Through the above description of the implementation methods, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the service calling device can be divided into different functional modules to complete all or part of the functions described above.

[0121] This application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be executed by computer instructions instructing related hardware. The program can be stored in the aforementioned computer-readable storage medium, and when executed, it can include the processes of the above method embodiments. The computer-readable storage medium can be any of the foregoing embodiments or memory. The aforementioned computer-readable storage medium can also be an external storage device of the aforementioned service invocation device, such as a plug-in hard drive, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the aforementioned service invocation device. Further, the aforementioned computer-readable storage medium can include both internal storage units of the aforementioned service invocation device and external storage devices. The aforementioned computer-readable storage medium is used to store the aforementioned computer program and other programs and data required by the aforementioned service invocation device. The aforementioned computer-readable storage medium can also be used to temporarily store data that has been output or will be output.

[0122] This application also provides a computer program product, which includes a computer program that, when run on a computer, causes the computer to execute any of the DPU capability multiplexing methods provided in the above embodiments.

[0123] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for reusing DPU capabilities, characterized in that, Applied to a pooling platform, the method includes: Receive a DPU call request message, wherein the DPU call request message includes the DPU capability requirements of the target application; Based on the call request message, N reusable DPUs that meet the DPU capability requirements are determined; where N is an integer greater than or equal to 1. A call response message is sent to the source DPU where the target application is located. The call response message includes the address information of the N reusable DPUs. It is used to instruct the source DPU to divide the data to be processed of the target application into N data slices according to the address information of the N reusable DPUs, and send the N data slices to the N reusable DPUs respectively.

2. The method according to claim 1, characterized in that, The step of determining N reusable DPUs that meet the DPU capability requirements based on the call request message includes: In response to the call request message, obtain the capability status information of at least one DPU network interface managed by the pooling platform; or, receive the capability status information reported by at least one DPU network managed by the pooling platform according to a preset period. Based on the capability status information of the at least one DPU network interface card and the capability requirements of the DPU, the N reusable DPUs are determined.

3. The method according to claim 2, characterized in that, The capability status information includes at least one of the following: the resource status of the DPU network interface card (NIC) and the application status deployed on the DPU NIC.

4. The method according to claim 1, characterized in that, Each of the N data slices corresponds to a data identifier; The method further includes: The address information of the destination DPU of the target application is sent to the N reusable DPUs so that the reusable DPUs send the processed data slices to the destination DPUs; wherein, the destination DPU is used to integrate data according to the data identifier corresponding to the data slice to obtain a complete data stream.

5. A method for reusing DPU capabilities, characterized in that, Applied to DPU network cards, the method includes: Based on the DPU capability requirements of the target application deployed within the DPU network interface, a DPU call request message is sent to the pooling platform; the DPU call request message is used to request the pooling platform to determine the reusable DPU based on the DPU capability requirements of the target application. Receive the call response message sent by the pooling platform, the call response message including the address information of N reusable DPUs; The data to be processed in the target application is divided into N data slices; Based on the address information of the N reusable DPUs, the N data slices are sent to the N reusable DPUs respectively.

6. The method according to claim 5, characterized in that, The method further includes: Obtain the data slice to be processed; the data slice corresponds to a data identifier; Receive the address information of the destination DPU of the target application sent by the pooling platform; After processing the data slice to be processed, the processed slice data is sent to the destination DPU according to the address information of the destination DPU, so that the destination DPU can integrate the processed slice data according to the data identifier to obtain a complete data stream.

7. A DPU capability multiplexing device, characterized in that, Applied to pooling platforms, it includes: a receiving unit and a processing unit; The receiving unit is used to receive a DPU call request message, which includes the DPU capability requirements of the target application. The processing unit is configured to determine, based on the call request message, N reusable DPUs that meet the DPU capability requirements; where N is an integer greater than or equal to 1. The processing unit is configured to send a call response message to the source DPU where the target application is located. The call response message includes the address information of the N reusable DPUs and is configured to instruct the source DPU to divide the data to be processed of the target application into N data slices according to the address information of the N reusable DPUs, and send the N data slices to the N reusable DPUs respectively.

8. A DPU capability multiplexing device, applied to a DPU network interface card, comprising: Processing unit and communication unit; The processing unit is used to send a DPU call request message to the pooling platform according to the DPU capability requirements of the target application deployed in the DPU network card. The DPU call request message is used to request the pooling platform to determine reusable DPUs based on the DPU capability requirements of the target application; The processing unit is used to receive a call response message sent by the pooling platform, the call response message including the address information of N reusable DPUs; The processing unit is used to divide the data to be processed in the target application into N data slices; The communication unit is used to send the N data slices to the N reusable DPUs respectively according to the address information of the N reusable DPUs.

9. An electronic device, characterized in that, The device includes a processor and a memory, the processor being coupled to the memory; the memory is used to store computer instructions, which are loaded and executed by the processor to enable the computer device to implement the DPU capability multiplexing method as described in any one of claims 1 to 6.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium includes computer-executable instructions that, when executed on a computer, cause the computer to perform the DPU capability multiplexing method as described in any one of claims 1 to 6.

11. A computer program product, characterized in that, The computer program product includes a computer program that, when run on an electronic device, causes the electronic device to perform the DPU capability multiplexing method as described in any one of claims 1 to 6.